|
dune-grid 2.10
|

Classes | |
| class | Dune::Mapper< G, MapperImp, IndexType > |
| Mapper interface. More... | |
| class | Dune::MultipleCodimMultipleGeomTypeMapper< GV > |
| Implementation class for a multiple codim and multiple geometry type mapper. More... | |
| class | Dune::SingleCodimSingleGeomTypeMapper< GV, c > |
| Implementation class for a single codim and single geometry type mapper. More... | |
Typedefs | |
| using | Dune::MCMGLayout = std::function< size_t(GeometryType, int)> |
layout function for MultipleCodimMultipleGeomTypeMapper | |
Functions | |
| template<int codim> | |
| MCMGLayout | Dune::mcmgLayout (Codim< codim >) |
layout for entities of codimension codim | |
| template<int dim> | |
| MCMGLayout | Dune::mcmgLayout (Dim< dim >) |
layout for entities of dimension dim | |
| MCMGLayout | Dune::mcmgElementLayout () |
| layout for elements (codim-0 entities) | |
| MCMGLayout | Dune::mcmgVertexLayout () |
| layout for vertices (dim-0 entities) | |
A mapper class is used to attach user-defined data to a subset of the grid entities 
It is assumed that the data 

![\[ a : I_{E^\prime} \to D(E^\prime) \]](form_54.png)
from the consecutive, zero-starting index set 

The mapper class provides a mapping
![\[ m : E^\prime \to I_{E^\prime} \]](form_56.png)
from the entity set to the index set.
Access from a grid entity 

![\[ a(m(e)) = d_e. \]](form_59.png)
There are different kinds of mappers depending on functionality and efficiency of their implementation. The user selects an appropriate mapper depending on her/his needs. All mappers conform to the same interface.
An index-based mapper is allocated for a grid and can be used as long as the grid is not changed (i.e. refined, coarsened or load balanced). The implementation of static mappers is based on a Dune::IndexSet and is typically of 
An id-based mapper can also be used while a grid changes. For that it has to be implemented on the basis of a Dune::IdSet. This may be relatively slow because the data type used for ids is usually not an int and the non-consecutive ids require more complicated search data structures (typically a map). Access is therefore at least 

This interface is implemented by the class template Dune::Mapper. For a full documentation see the description of this class.
The function Dune::Mapper::index delivers the index for an entity. Note that that for performance reasons it is usually not checked whether the entity is really in the entity set.
The functions Dune::Mapper::index delivers the index for a (sub-)entity
The function Dune::Mapper::size returns the size of the entity set, i.e. 
The different implementations of the mapper interface are listed below.
| using Dune::MCMGLayout = typedef std::function<size_t(GeometryType, int)> |
layout function for MultipleCodimMultipleGeomTypeMapper
The layout function indicates which entity types are contained in the mapper. It is called for each GeometryType and the grid dimension. A true value indicates the geometry type is part of the map; false that it is not.
For commonly used layouts containing only entities of a fixed dimension or codimension, convenience functions returning a MCMGLayout are provided.
The following example is equivalent to mcmgElementLayout():
|
inline |
layout for elements (codim-0 entities)
| MCMGLayout Dune::mcmgLayout | ( | Codim< codim > | ) |
layout for entities of codimension codim
| MCMGLayout Dune::mcmgLayout | ( | Dim< dim > | ) |
layout for entities of dimension dim
|
inline |
layout for vertices (dim-0 entities)