dune-geometry  2.2.0
Classes
Generic Geometry
dune-geometry

Classes

struct  Dune::GenericGeometry::MappingTraits< CT, dim, dimW >
 Default mapping traits using Dune::FieldVector and Dune::FieldMatrix. More...
struct  Dune::GenericGeometry::DefaultGeometryTraits< ctype, dimG, dimW, alwaysAffine >
 default settings for BasicGeometry More...
class  Dune::GenericGeometry::CoordStorage< CoordTraits, Topology, dimW >
class  Dune::GenericGeometry::CoordPointerStorage< CoordTraits, Topology, dimW >
class  Dune::GenericGeometry::CornerMapping< CoordTraits, Topo, dimW, CStorage, affine >
 implementation of GenericGeometry::Mapping for first order lagrange type reference mappings. More...
class  Dune::GenericGeometry::BasicGeometry< mydim, Traits >
 generic implementation of DUNE geometries More...
class  Dune::GenericGeometry::Geometry< mydim, cdim, Grid >
 generic implementation of a DUNE (global) geometry More...
class  Dune::GenericGeometry::LocalGeometry< mydim, cdim, Grid >
 generic implementation of a DUNE (local) geometry More...
struct  GlobalGeometryTraits
 grid specific information required by GenericGeometry::Geometry More...
struct  LocalGeometryTraits
 grid specific information required by GenericGeometry::LocalGeometry More...
class  Dune::GenericGeometry::HybridMapping< dim, GeometryTraits >
 abstract base class for generic mapping More...
class  Dune::GenericGeometry::NonHybridMapping< Topology, GeometryTraits >
 non-virtual geometric mapping More...
class  Dune::GenericGeometry::Mapping< CoordTraits, Topo, dimW, Impl >
 interface for a mapping More...

Detailed Description

General

Based on a recursive definition of the reference elements, a generic implementation of Dune::Geometry is provided. The class used for the implementation of the Dune::Geometry engine, is GenericGeometry::BasicGeometry.

The BasicGeometry class takes a template argument Traits specifying details of the reference mapping implementation and some performance settings. A default implementation for this class is GenericGeometry::DefaultGeometryTraits. The traits class must contain the same types as this default implementation.

To conform with the Dune::Geometry engine, two further classes are provided: GenericGeometry::Geometry and GenericGeometry::LocalGeometry. To use these classes instead of GenericGeometry::BasicGeometry, the traits classes

  template< class Grid> GenericGeometry::GlobalGeometryTraits<Grid>
  template< class Grid> GenericGeometry::LocalGeometryTraits<Grid>

have to be specialized. These classes are simply passed as Traits argument to GenericGeometry::BasicGeometry.

The reference mapping for a given topology type is given by Mapping<Topology>::type in the traits class. Here, Topology is one of the generic topology classes GenericGeometry::Point, GenericGeometry::Prism, GenericGeometry::Pyramid. An interface for the mapping is provided by GenericGeometry::Mapping. The implementation of this interface must have constructors taking a single argument. The constructor of GenericGeometry::BasicGeometry looks as follows:

  template< class CoordVector >
  BasicGeometry ( const GeometryType &type, const CoordVector &coords );

Its first argument, type, specifies the type of the reference element (as a Dune::GeometryType). The second argument, coords is passed directly to the constructor of the mapping implementation. The most prominent implementation of GenericGeometry::Mapping is GenericGeometry::CornerMapping. It provides a polynomial interpolation of the entity's corners with minimal degree. In this case, coords represents the entity's corners.

Usage

To add first order Lagrange type geometries to a grid implementation the following steps suffice: