template<int mydim, int cdim, class GridImp, template< int, int, class > class GeometryImp>
class Dune::Geometry< mydim, cdim, GridImp, GeometryImp >
Wrapper class for geometries.
\tparam mydim Dimension of the domain
\tparam cdim Dimension of the range
\tparam GridImp Type that is a model of Dune::Grid
\tparam GeometryImp Class template that is a model of Dune::Geometry
<H3>Maps</H3>
A Geometry defines a map \form#0 where
and
. The domain
is one of a set of predefined convex polytopes, the so-called reference elements (
- See also:
- Dune::GenericReferenceElement). 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. <H3>Engine Concept</H3>
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.
The grid manager can instruct this facade class to either itself store an
instance of the implementation class or keep a reference to an instance
stored elsewhere as determined by FacadeOptions::StoreGeometryReference.
In any case it is guaranteed that instances of Geometry are valid until
the grid is changed (via any of adapt(), loadBalance() or
globalRefine()).
template<int mydim, int cdim, class GridImp , template< int, int, class > class GeometryImp>
export geometry dimension
- Enumerator:
mydimension |
geometry dimension
|
template<int mydim, int cdim, class GridImp , template< int, int, class > class GeometryImp>
export coordinate dimension
- Enumerator:
coorddimension |
dimension of embedding coordsystem
|
template<int mydim, int cdim, class GridImp , template< int, int, class > class GeometryImp>
export dimension of world
- Enumerator:
dimensionworld |
dimension of world
|
template<int mydim, int cdim, class GridImp , template< int, int, class > class GeometryImp>
bool Dune::Geometry< mydim, cdim, GridImp, GeometryImp >::affine |
( |
| ) |
const |
|
inline |
template<int mydim, int cdim, class GridImp , template< int, int, class > class GeometryImp>
return center of geometry
Note that this method is still subject to a change of name and semantics. At the moment, the center is not required to be the centroid of the geometry, or even the centroid of its corners. This makes the current default implementation acceptable, which maps the centroid of the reference element to the geometry. We may change the name (and semantic) of the method to centroid() if we find reasonably efficient ways to implement it properly.
References Dune::Geometry< mydim, cdim, GridImp, GeometryImp >::impl().
template<int mydim, int cdim, class GridImp , template< int, int, class > class GeometryImp>
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
- Parameters:
-
[in] | i | number of the corner (with respect to the generic reference element) |
- Returns:
- position of the i-th corner
References Dune::Geometry< mydim, cdim, GridImp, GeometryImp >::impl().
template<int mydim, int cdim, class GridImp , template< int, int, class > class GeometryImp>
int Dune::Geometry< mydim, cdim, GridImp, GeometryImp >::corners |
( |
| ) |
const |
|
inline |
Return the number of corners of the reference element.
Since a geometry 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.
References Dune::Geometry< mydim, cdim, GridImp, GeometryImp >::impl().
template<int mydim, int cdim, class GridImp , template< int, int, class > class GeometryImp>
Return the factor appearing in the integral transformation formula.
Let \form#9 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
\param[in] local Position \form#15
\return integration element \form#14
\note Each implementation computes the integration element with optimal
efficieny. For example in an equidistant structured mesh it may be as
simple as \form#17.
References Dune::Geometry< mydim, cdim, GridImp, GeometryImp >::impl().
template<int mydim, int cdim, class GridImp , template< int, int, class > class GeometryImp>
template<int mydim, int cdim, class GridImp , template< int, int, class > class GeometryImp>
template<int mydim, int cdim, class GridImp , template< int, int, class > class GeometryImp>
GeometryType Dune::Geometry< mydim, cdim, GridImp, GeometryImp >::type |
( |
| ) |
const |
|
inline |