dune-geometry
2.2.0
|
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 unsigned int topologyId, const CoordVector &coords) | |
constructor | |
template<class CoordVector > | |
BasicGeometry (const unsigned int topologyId, const CoordVector &coords, const bool affine) | |
constructor | |
template<class CoordVector > | |
BasicGeometry (const GeometryType &type, const CoordVector &coords) | |
Constructor using a GeometryType and a list of corner coordinates. | |
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 MappingProvider::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 into one class parameter called Traits. The following default implementation can be used (via subclassing) to provide the necessary information. It contains exactly the required 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.
Reimplemented in Dune::MockGeometry< ctype, mydim, coorddim >.
typedef Jacobian Dune::GenericGeometry::BasicGeometry< mydim, Traits >::JacobianInverseTransposed |
typedef Mapping::JacobianTransposed Dune::GenericGeometry::BasicGeometry< mydim, Traits >::JacobianTransposed |
Type used for Jacobian matrices.
Reimplemented in Dune::MockGeometry< ctype, mydim, coorddim >.
typedef FieldVector< ctype, mydimension > Dune::GenericGeometry::BasicGeometry< mydim, Traits >::LocalCoordinate |
Type used for parameter coordinates.
|
protected |
|
inline |
Default constructor.
|
inline |
constructor
[in] | topologyId | topology id of the desired geometry |
[in] | coords | coordinates |
|
inline |
constructor
[in] | topologyId | topology id of the desired geometry |
[in] | coords | coordinates |
[in] | affine | flag whether the mapping is affine |
|
inline |
Constructor using a GeometryType and a list of corner coordinates.
|
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.
|
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.