|
(Note that these are not member functions.)
|
template<int mydim, int cdim, class GridImp , template< int, int, class > class GeometryImp, typename Impl > |
auto | referenceElement (const Geometry< mydim, cdim, GridImp, GeometryImp > &geo, const Impl &impl) -> decltype(referenceElement< typename GridImp::ctype, mydim >(geo.type())) |
| Second-level dispatch to select the correct reference element for a grid geometry. More...
|
|
template<int mydim, int cdim, class GridImp, template< int, int, class > class GeometryImp>
class Dune::Geometry< mydim, cdim, GridImp, GeometryImp >
Wrapper class for geometries.
- Template Parameters
-
mydim | Dimension of the domain |
cdim | Dimension of the range |
GridImp | Type that is a model of Dune::Grid |
GeometryImp | Class template that is a model of Dune::Geometry |
Maps
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.
Engine Concept
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.
template<int mydim, int cdim, class GridImp, template< int, int, class > class GeometryImp>
type of jacobian inverse transposed
The exact type is implementation-dependent. However, it is guaranteed to have the following properties:
- It satisfies the ConstMatrix interface.
- It is copy constructible and copy assignable.
template<int mydim, int cdim, class GridImp, template< int, int, class > class GeometryImp>
type of jacobian transposed
The exact type is implementation-dependent. However, it is guaranteed to have the following properties:
- It satisfies the ConstMatrix interface.
- It is copy constructible and copy assignable.
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 coordinate system
|
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.
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 calling
- Parameters
-
[in] | i | number of the corner (with respect to the reference element) |
- Returns
- position of the i-th corner
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.
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, typename Impl >
auto referenceElement |
( |
const Geometry< mydim, cdim, GridImp, GeometryImp > & |
geo, |
|
|
const Impl & |
impl |
|
) |
| -> decltype(referenceElement<typename GridImp::ctype,mydim>(geo.type()))
|
|
related |
Second-level dispatch to select the correct reference element for a grid geometry.
This function is the default implementation of the second-level reference element dispatch performed by Geometry.
- Note
- This function is only important for grid implementors with geometries that do not have a standard reference element.
When referenceElement() is called with a Geometry, it will forward the call to referenceElement(const Geometry&,const GeometryImplementation&)
. This default implementation will do the right thing as long as your geometry is based on a standard Dune ReferenceElement. If it is not and you want to supply your own reference element implementation, provide an override of this function for your specific geometry implementation.