dune-grid
2.3.0
|
Classes | |
class | Dune::Mapper< G, MapperImp > |
Mapper interface. More... | |
struct | Dune::MCMGElementLayout< dimgrid > |
Layout template for elements. More... | |
struct | Dune::MCMGVertexLayout< dim > |
Layout template for vertices. More... | |
class | Dune::MultipleCodimMultipleGeomTypeMapper< GV, Layout > |
Implementation class for a multiple codim and multiple geometry type mapper. More... | |
class | Dune::LeafMultipleCodimMultipleGeomTypeMapper< G, Layout > |
Multiple codim and multiple geometry type mapper for leaf entities. More... | |
class | Dune::LevelMultipleCodimMultipleGeomTypeMapper< G, Layout > |
Multiple codim and multiple geometry type mapper for entities of one level. More... | |
class | Dune::SingleCodimSingleGeomTypeMapper< GV, c > |
Implementation class for a single codim and single geometry type mapper. More... | |
class | Dune::LeafSingleCodimSingleGeomTypeMapper< G, c > |
Single codim and single geometry type mapper for leaf entities. More... | |
class | Dune::LevelSingleCodimSingleGeomTypeMapper< G, c > |
Single codim and single geometry type mapper for entities of one level. More... | |
class | Dune::UniversalMapper< G, IDS > |
Implements a mapper for an arbitrary subset of entities. More... | |
class | Dune::GlobalUniversalMapper< G > |
Universal mapper based on global ids. More... | |
class | Dune::LocalUniversalMapper< G > |
Universal mapper based on local ids. More... | |
A mapper class is used to attach user-defined data to a subset of the grid entities .
It is assumed that the data associated with
is stored in an array. The array can be viewed as a map
from the consecutive, zero-starting index set of
to the data set.
The mapper class provides a mapping
from the entity set to the index set.
Access from a grid entity to its associated data element
then is a two step process:
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 complexity with a very small constant. Index-based mappers are only available for restricted (but usually sufficient) entity sets.
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 . On the other hand, id-based mappers can treat arbitrary entity sets
.
This interface is implemented by the class template Dune::Mapper. For a full documentation see the description of this class.
The function Dune::Mapper::map 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::map 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.