dune-geometry
2.3beta2
|
generic implementation of DUNE geometries More...
#include <dune/geometry/genericgeometry/geometry.hh>
Classes | |
struct | Hybrid |
struct | NonHybrid |
Public Types | |
typedef CoordTraits::ctype | ctype |
Type used for coordinate components. | |
typedef FieldVector< ctype, mydimension > | LocalCoordinate |
Type used for parameter coordinates. | |
typedef FieldVector< ctype, coorddimension > | GlobalCoordinate |
Type used for world coordinates. | |
typedef Mapping::JacobianTransposed | JacobianTransposed |
Type used for Jacobian matrices. | |
typedef Mapping::JacobianInverseTransposed | Jacobian |
Type used for Jacobian matrices. | |
typedef Jacobian | JacobianInverseTransposed |
Public Member Functions | |
BasicGeometry () | |
Default constructor. | |
template<class CoordVector > | |
BasicGeometry (const GeometryType &type, const CoordVector &coords) | |
Constructor using a GeometryType and a list of corner coordinates. | |
template<class CoordVector > | |
BasicGeometry (const CoordVector &coords) | |
Constructor using a vector of corner coordinates and the dimension. | |
template<int fatherdim> | |
BasicGeometry (const BasicGeometry< fatherdim, Traits > &father, int i) | |
obtain a geometry for a subentity | |
BasicGeometry (const BasicGeometry &other) | |
Copy constructor. | |
~BasicGeometry () | |
Destructor. | |
const BasicGeometry & | operator= (const BasicGeometry &other) |
Assignment from other BasicGeometry. | |
operator bool () const | |
bool cast | |
GeometryType | type () const |
Return the topological type of this geometry. | |
int | corners () const |
Return the number of corners. | |
GlobalCoordinate | corner (const int i) const |
Return the world coordinates of the i-th corner. | |
GlobalCoordinate | global (const LocalCoordinate &local) const |
Map local to global coordinates. | |
LocalCoordinate | local (const GlobalCoordinate &global) const |
Map global to local coordinates. | |
GlobalCoordinate | center () const |
return center of element | |
bool | affine () const |
Return true if this is an affine geometry. | |
ctype | integrationElement (const LocalCoordinate &local) const |
Return the factor $|det F|$ that appears in the integral transformation formula. | |
ctype | volume () const |
Return the volume of the element. | |
const JacobianTransposed & | jacobianTransposed (const LocalCoordinate &local) const |
Compute the transpose of the Jacobian matrix of the transformation from the reference element into the world space. | |
const JacobianInverseTransposed & | jacobianInverseTransposed (const LocalCoordinate &local) const |
Compute the transpose of the inverse Jacobian matrix of the transformation from the reference element into the world space. |
Static Public Attributes | |
static const int | mydimension = mydim |
The dimension of the parameter space of this geometry. | |
static const int | coorddimension = Traits :: dimWorld |
The dimension of the world space of this geometry. |
Protected Types | |
typedef conditional< hybrid, Hybrid< true >, NonHybrid < false > >::type::MappingFactory | MappingFactory |
typedef MappingFactory::Mapping | Mapping |
Friends | |
class | BasicGeometry |
Be friend with other instantiations of the same class. |
generic implementation of DUNE geometries
This class is provides a generic implementation of a DUNE geometry.
Parameters shared by all codimensions are summarized in one class parameter called Traits. As a default traits class, the class DefaultGeometryTraits can be used. Alternatively, the user can provide hand-written traits classes (which may, if that helps, derive from DefaultGeometryTraits). Such classes have to provide the following fields:
The structure specifying the reference mapping is Traits::Mapping::type. An example implementation is the GenericGeometry::CornerMapping which defines the simple mapping taking corners of the reference elements to corner of the entity in space.
The central reference mapping specified by Traits::Mapping::type requires a constructor taking a single argument. The GenericGeometry::BasicGeometry has a constructor with one template argument which is passed on to the constructor of the reference mapping. The interface for the this class is GenericGeometry::Mapping.
To increase the efficiency of the geometry implementation, different strategies for the caching of parts of the geometry data is provided. The specifics are given by the structure Traits::Caching. Possible values are:
typedef CoordTraits :: ctype Dune::GenericGeometry::BasicGeometry< mydim, Traits >::ctype |
Type used for coordinate components.
typedef FieldVector< ctype, coorddimension > Dune::GenericGeometry::BasicGeometry< mydim, Traits >::GlobalCoordinate |
Type used for world coordinates.
typedef Mapping::JacobianInverseTransposed Dune::GenericGeometry::BasicGeometry< mydim, Traits >::Jacobian |
Type used for Jacobian matrices.
typedef Jacobian Dune::GenericGeometry::BasicGeometry< mydim, Traits >::JacobianInverseTransposed |
typedef Mapping::JacobianTransposed Dune::GenericGeometry::BasicGeometry< mydim, Traits >::JacobianTransposed |
Type used for Jacobian matrices.
typedef FieldVector< ctype, mydimension > Dune::GenericGeometry::BasicGeometry< mydim, Traits >::LocalCoordinate |
Type used for parameter coordinates.
|
protected |
|
protected |
|
inline |
Default constructor.
|
inline |
Constructor using a GeometryType and a list of corner coordinates.
|
inline |
Constructor using a vector of corner coordinates and the dimension.
|
inline |
obtain a geometry for a subentity
Assume that we have a geometry for some entity d-dimensional E. This method can provide a geometry for the i-th subentity of E (of codimension d - mydimension).
[in] | father | geometry of entity E |
[in] | i | number of the subentity (in generic numbering) |
|
inline |
Copy constructor.
|
inline |
Destructor.
|
inline |
Return true if this is an affine geometry.
|
inline |
return center of element
|
inline |
Return the world coordinates of the i-th corner.
|
inline |
Return the number of corners.
|
inline |
Map local to global coordinates.
|
inline |
Return the factor $|det F|$ that appears in the integral transformation formula.
|
inline |
Compute the transpose of the inverse Jacobian matrix of the transformation from the reference element into the world space.
Referenced by Dune::MockGeometry< ctype, mydim, coorddim >::jacobianInverseTransposed().
|
inline |
Compute the transpose of the Jacobian matrix of the transformation from the reference element into the world space.
Referenced by Dune::MockGeometry< ctype, mydim, coorddim >::jacobianTransposed().
|
inline |
Map global to local coordinates.
|
inline |
bool cast
Like a pointer, a BasicGeometry casts to true if and only if it is properly initialized. If a geometry casts to false, none of the interface methods may be called.
|
inline |
Assignment from other BasicGeometry.
|
inline |
Return the topological type of this geometry.
Referenced by Dune::GenericGeometry::BasicGeometry< mydim, GenericGeometry::DefaultGeometryTraits< ctype, coorddim, coorddim > >::BasicGeometry().
|
inline |
Return the volume of the element.
|
friend |
Be friend with other instantiations of the same class.
|
static |
The dimension of the world space of this geometry.
|
static |
The dimension of the parameter space of this geometry.