#include <geometry.hh>
Template parameters are:
mydim
Dimension of the domaincdim
Dimension of the rangeGridImp
Type that is a model of Dune::GridGeometryImp
Class template that is a model of Dune::Geometry
A Geometry defines a map
where and
. The domain
is one of a set of predefined convex polytopes, the so-called reference elements (see also Dune::ReferenceElement). The dimensionality of
is
mydim
. In general , i.e. the convex polytope may be mapped to a manifold. Moreover, we require that
and one-to-one.
The Geometry class template wraps an object of type GeometryImp and forwards all member function calls to corresponding members of this class. In that sense Geometry defines the interface and GeometryImp supplies the implementation.
Public Types | |
enum | { dimension = GridImp::dimension } |
export grid dimension More... | |
enum | { mydimension = mydim } |
export geometry dimension More... | |
enum | { coorddimension = cdim } |
export coordinate dimension More... | |
enum | { dimensionworld = GridImp::dimensionworld } |
export dimension of world More... | |
typedef GridImp::ctype | ctype |
define type used for coordinates in grid module | |
Public Member Functions | |
GeometryType | type () const |
Return the name of the reference element. The type can be used to access the Dune::ReferenceElement. | |
int | corners () const |
Return the number of corners of the reference element. Since this is a convex polytope the number of corners is a well-defined concept. The method is redundant because this information is also available via the reference element. It is here for efficiency and ease of use. | |
const FieldVector< ctype, cdim > & | operator[] (int i) const |
Access to corners of the geometry. | |
FieldVector< ctype, cdim > | corner (int i) const |
FieldVector< ctype, cdim > | global (const FieldVector< ctype, mydim > &local) const |
Evaluate the map ![]() | |
FieldVector< ctype, mydim > | local (const FieldVector< ctype, cdim > &global) const |
Evaluate the inverse map ![]() | |
bool | checkInside (const FieldVector< ctype, mydim > &local) const |
Return true if the point is in the reference element ![]() | |
ctype | integrationElement (const FieldVector< ctype, mydim > &local) const |
Return the factor appearing in the integral transformation formula. | |
ctype | volume () const |
return volume of geometry | |
const FieldMatrix< ctype, cdim, mydim > & | jacobianInverseTransposed (const FieldVector< ctype, mydim > &local) const |
Return inverse of transposed of Jacobian. | |
Geometry (const GeometryImp< mydim, cdim, GridImp > &e) | |
copy constructor from GeometryImp | |
Protected Member Functions | |
GeometryImp< mydim, cdim, GridImp > & | getRealImp () |
return reference to the real implementation | |
const GeometryImp< mydim, cdim, GridImp > & | getRealImp () const |
return reference to the real implementation | |
Geometry (const Geometry &rhs) | |
Geometry & | operator= (const Geometry &rhs) |
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
Dune::Geometry< mydim, cdim, GridImp, GeometryImp >::Geometry | ( | const Geometry< mydim, cdim, GridImp, GeometryImp > & | rhs | ) | [inline, protected] |
hide copy constructor
const FieldVector< ctype, cdim >& Dune::Geometry< mydim, cdim, GridImp, GeometryImp >::operator[] | ( | int | i | ) | const [inline] |
Access to corners of the geometry.
[in] | i | The number of the corner |
FieldVector< ctype, cdim > Dune::Geometry< mydim, cdim, GridImp, GeometryImp >::corner | ( | int | i | ) | const [inline] |
Obtain a corner of the geometry
This method is for convenient access to the corners of the geometry. The same result could be achieved by by calling
global( genericReferenceElement.position( i, mydimension )
[in] | i | number of the corner (with respect to the generic reference element) |
FieldVector<ctype, cdim> Dune::Geometry< mydim, cdim, GridImp, GeometryImp >::global | ( | const FieldVector< ctype, mydim > & | local | ) | const [inline] |
Evaluate the map .
[in] | local | Position in the reference element ![]() |
FieldVector<ctype, mydim> Dune::Geometry< mydim, cdim, GridImp, GeometryImp >::local | ( | const FieldVector< ctype, cdim > & | global | ) | const [inline] |
Evaluate the inverse map .
[in] | global | Position in ![]() |
ctype Dune::Geometry< mydim, cdim, GridImp, GeometryImp >::integrationElement | ( | const FieldVector< ctype, mydim > & | local | ) | const [inline] |
Return the factor appearing in the integral transformation formula.
Let denote the transformation described by the Geometry. Then the jacobian of the transformation is defined as the
matrix
Here we abbreviated and
for ease of readability.
The integration element for any
is then defined as
[in] | local | Position ![]() |
const FieldMatrix<ctype,cdim,mydim>& Dune::Geometry< mydim, cdim, GridImp, GeometryImp >::jacobianInverseTransposed | ( | const FieldVector< ctype, mydim > & | local | ) | const [inline] |
Return inverse of transposed of Jacobian.
The jacobian is defined in the documentation of Dune::Geometry::integrationElement().
[in] | local | Position ![]() |
Geometry& Dune::Geometry< mydim, cdim, GridImp, GeometryImp >::operator= | ( | const Geometry< mydim, cdim, GridImp, GeometryImp > & | rhs | ) | [inline, protected] |
hide assignment operator