Dune Core Modules (2.3.1)
Implementation class for a multiple codim and multiple geometry type mapper. More...
#include <dune/grid/common/mcmgmapper.hh>
Public Member Functions | |
MultipleCodimMultipleGeomTypeMapper (const GV &gridView_, const Layout< GV::dimension > layout) | |
Construct mapper from grid and one of its index sets. More... | |
MultipleCodimMultipleGeomTypeMapper (const GV &gridView_) | |
Construct mapper from grid and one of its index sets. More... | |
template<class EntityType > | |
int | map (const EntityType &e) const |
Map entity to array index. More... | |
int | map (const typename GV::template Codim< 0 >::Entity &e, int i, unsigned int codim) const |
Map subentity of codim 0 entity to array index. More... | |
int | size () const |
Return total number of entities in the entity set managed by the mapper. More... | |
template<class EntityType > | |
bool | contains (const EntityType &e, int &result) const |
Returns true if the entity is contained in the index set. More... | |
bool | contains (const typename GV::template Codim< 0 >::Entity &e, int i, int cc, int &result) const |
Returns true if the entity is contained in the index set. More... | |
void | update () |
Recalculates map after mesh adaptation. | |
int | map (const typename G::Traits::template Codim< 0 >::Entity &e, int i, unsigned int codim) const |
Map subentity i of codim cc of a codim 0 entity to array index. More... | |
bool | contains (const typename G::Traits::template Codim< 0 >::Entity &e, int i, int cc, int &result) const |
Returns true if the subentity is contained in the index set and at the same time the array index is returned. More... | |
Detailed Description
class Dune::MultipleCodimMultipleGeomTypeMapper< GV, Layout >
Implementation class for a multiple codim and multiple geometry type mapper.
In this implementation of a mapper the entity set used as domain for the map consists of the entities of a subset of codimensions in the given index set. The index set may contain entities of several geometry types. This version is usually not used directly but is used to implement versions for leafwise and levelwise entity sets.
- Template Parameters
-
GV A Dune GridView type. Layout A helper class template with a method contains(), that returns true for all geometry types that are in the domain of the map. The class should be of the following shape The MultipleCodimMultipleGeomTypeMapper will always substitute the dimension of the grid for the template parameter dimgrid.template<int dimgrid>struct LayoutClass {// Return true if gt is in the domain of the map}};Unique label for each type of entities that can occur in DUNE grids.Definition: type.hh:25bool contains(const EntityType &e, int &result) constReturns true if the entity is contained in the index set.Definition: mcmgmapper.hh:193bool gt(const T &first, const T &second, typename EpsilonType< T >::Type epsilon)test if first greater than secondDefinition: float_cmp.cc:132
If you don't want to use the default constructor of the LayoutClass you can construct it yourself and hand it to the respective constructor (with dimgrid=GV::dimension). In this case the layout class should be copy constructible.
There are two predefined Layout class templates for the common cases that only elements or only vertices should be mapped: MCMGElementLayout and MCMGVertexLayout.
Constructor & Destructor Documentation
◆ MultipleCodimMultipleGeomTypeMapper() [1/2]
|
inline |
Construct mapper from grid and one of its index sets.
Use this constructor to provide a custom layout object e.g. not using the default constructor.
References Dune::MultipleCodimMultipleGeomTypeMapper< GV, Layout >::update().
◆ MultipleCodimMultipleGeomTypeMapper() [2/2]
|
inline |
Construct mapper from grid and one of its index sets.
References Dune::MultipleCodimMultipleGeomTypeMapper< GV, Layout >::update().
Member Function Documentation
◆ contains() [1/3]
|
inline |
Returns true if the entity is contained in the index set.
- Parameters
-
e Reference to entity result integer reference where corresponding index is stored if true
- Returns
- true if entity is in entity set of the mapper
References Dune::MultipleCodimMultipleGeomTypeMapper< GV, Layout >::map().
◆ contains() [2/3]
|
inlineinherited |
Returns true if the subentity is contained in the index set and at the same time the array index is returned.
- Parameters
-
[in] e Reference to codim 0 entity [in] i subentity number [in] cc subentity codim [out] result Filled with array index if entity is contained
- Returns
- true if entity is in entity set of the mapper
◆ contains() [3/3]
|
inline |
Returns true if the entity is contained in the index set.
- Parameters
-
e Reference to codim 0 entity i subentity number cc subentity codim result integer reference where corresponding index is stored if true
- Returns
- true if entity is in entity set of the mapper
References Dune::MultipleCodimMultipleGeomTypeMapper< GV, Layout >::map().
◆ map() [1/3]
|
inline |
Map entity to array index.
- Template Parameters
-
EntityType
- Parameters
-
e Reference to codim EntityType entity.
- Returns
- An index in the range 0 ... Max number of entities in set - 1.
References Dune::FloatCmp::gt(), and Dune::GlobalGeometryTypeIndex::index().
Referenced by Dune::MultipleCodimMultipleGeomTypeMapper< GV, Layout >::contains(), Dune::VTKWriter< GridView >::countEntities(), Dune::P0VTKFunction< GV, V >::evaluate(), Dune::P1VTKFunction< GV, V >::evaluate(), and Dune::VTKWriter< GridView >::CornerIterator::id().
◆ map() [2/3]
|
inlineinherited |
Map subentity i of codim cc of a codim 0 entity to array index.
- Parameters
-
e Reference to codim 0 entity. i Number of codim cc subentity of e, where cc is the template parameter of the function. codim codimension of subentity of e
- Returns
- An index in the range 0 ... Max number of entities in set - 1.
◆ map() [3/3]
|
inline |
Map subentity of codim 0 entity to array index.
- Parameters
-
e Reference to codim 0 entity. i Number of subentity of e codim Codimension of the subentity
- Returns
- An index in the range 0 ... Max number of entities in set - 1.
References Dune::ReferenceElements< ctype, dim >::general(), Dune::FloatCmp::gt(), and Dune::GlobalGeometryTypeIndex::index().
◆ size()
|
inline |
Return total number of entities in the entity set managed by the mapper.
This number can be used to allocate a vector of data elements associated with the entities of the set. In the parallel case this number is per process (i.e. it may be different in different processes).
- Returns
- Size of the entity set.
Referenced by Dune::P0VTKFunction< GV, V >::P0VTKFunction(), and Dune::P1VTKFunction< GV, V >::P1VTKFunction().
The documentation for this class was generated from the following file:
- dune/grid/common/mcmgmapper.hh