Dune Core Modules (2.6.0)
Implementation class for a multiple codim and multiple geometry type mapper. More...
#include <dune/grid/common/mcmgmapper.hh>
Public Types | |
typedef GV | GridView |
Underlying GridView. | |
typedef GV::IndexSet::IndexType | Index |
Number type used for indices. | |
using | size_type = decltype(std::declval< typename GV::IndexSet >().size(0)) |
Number type used for the overall size (the return value of the 'size' method) More... | |
Public Member Functions | |
MultipleCodimMultipleGeomTypeMapper (const GV &gridView, const LayoutClass< GV::dimension > layout={}) | |
Construct mapper from grid and one of its index sets. More... | |
MultipleCodimMultipleGeomTypeMapper (const GV &gridView, const MCMGLayout &layout) | |
construct mapper from grid and layout description More... | |
template<class EntityType > | |
Index | index (const EntityType &e) const |
Map entity to starting index in array for dof block. More... | |
Index | subIndex (const typename GV::template Codim< 0 >::Entity &e, int i, unsigned int codim) const |
Map subentity of codim 0 entity to starting index in array for dof block. More... | |
size_type | size () const |
Return total number of entities in the entity set managed by the mapper. More... | |
size_type | size (GeometryType gt) const |
return number of entries for a given geometry type | |
const std::vector< GeometryType > & | types (int codim) const |
return the geometry types with entries | |
template<class EntityType > | |
IntegralRange< Index > | indices (const EntityType &e) const |
Returns a pair with the starting point in the dof vector and the number of degrees of freedom if the entity is contained in the index set otherwise {0,0} is returned. More... | |
IntegralRange< Index > | indices (const typename GV::template Codim< 0 >::Entity &e, int i, int cc) const |
Returns a pair with the starting point in the dof vector and the number of degrees of freedom if the entity is contained in the index set otherwise {0,0} is returned. More... | |
template<class EntityType > | |
bool | contains (const EntityType &e, Index &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, Index &result) const |
Returns true if the entity is contained in the index set. More... | |
void | update () |
Recalculates map after mesh adaptation. | |
Static Protected Member Functions | |
static MCMGLayout | wrapLayoutClass (const LayoutClass< GV::dimension > &layout) |
wrap legacy layout classes | |
Detailed Description
class Dune::MultipleCodimMultipleGeomTypeMapper< GV, LayoutClass >
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.
The geometry types to be included in the mapper are selected using a layout functional (MCMGLayout) that is passed to the constructor.
- Template Parameters
-
GV A Dune GridView type. LayoutClass (deprecated) 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:277bool contains(const EntityType &e, Index &result) constReturns true if the entity is contained in the index set.Definition: mcmgmapper.hh:355bool gt(const T &first, const T &second, typename EpsilonType< T >::Type epsilon)test if first greater than secondDefinition: float_cmp.cc:147
Member Typedef Documentation
◆ size_type
using Dune::MultipleCodimMultipleGeomTypeMapper< GV, LayoutClass >::size_type = decltype(std::declval<typename GV::IndexSet>().size(0)) |
Number type used for the overall size (the return value of the 'size' method)
The type used here is set to be the corresponding type used by the GridView's index set.
Constructor & Destructor Documentation
◆ MultipleCodimMultipleGeomTypeMapper() [1/2]
|
inline |
Construct mapper from grid and one of its index sets.
- Deprecated:
- Use the constructor taking a MCMGLayout instead.
- Deprecated:
- "Use the constructor taking a `MCMGLayout` functional instead"
◆ MultipleCodimMultipleGeomTypeMapper() [2/2]
|
inline |
construct mapper from grid and layout description
The layout
parameter is a functional describing entities of which geometry types are included in the mapper. For commonly used cases, convenience functions are provided. See the MCMGLayout type documentation for details.
- Parameters
-
gridView grid view whose entities should be included in the mapper layout functional describing how many dof to store on each entity (fixed per geometry type)
References Dune::MultipleCodimMultipleGeomTypeMapper< GV, LayoutClass >::update().
Member Function Documentation
◆ contains() [1/2]
|
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, LayoutClass >::index().
◆ contains() [2/2]
|
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::Geo::ReferenceElements< ctype_, dim >::general(), Dune::FloatCmp::gt(), Dune::GeometryType::isNone(), and Dune::GeometryTypes::none().
◆ index()
|
inline |
Map entity to starting index in array for dof block.
- Template Parameters
-
EntityType
- Parameters
-
e Reference to codim EntityType entity.
- Returns
- An index in the range 0 ... (Max number of entities in set)*blockSize - 1.
References Dune::FloatCmp::gt().
Referenced by Dune::MultipleCodimMultipleGeomTypeMapper< GV, LayoutClass >::contains(), Dune::P0VTKFunction< GV, V >::evaluate(), and Dune::MultipleCodimMultipleGeomTypeMapper< GV, LayoutClass >::indices().
◆ indices() [1/2]
|
inline |
Returns a pair with the starting point in the dof vector and the number of degrees of freedom if the entity is contained in the index set otherwise {0,0} is returned.
- Parameters
-
e Reference to entity result integer reference to the start of the block
- Returns
- pair with first entry equal to index for that entity and the second entry the number of degrees of freedom (zero if entity is not in entity set of the mapper)
References Dune::MultipleCodimMultipleGeomTypeMapper< GV, LayoutClass >::index().
◆ indices() [2/2]
|
inline |
Returns a pair with the starting point in the dof vector and the number of degrees of freedom if the entity is contained in the index set otherwise {0,0} is returned.
- Parameters
-
e Reference to codim 0 entity i subentity number cc subentity codim result integer reference to the start of the block
- Returns
- pair with first entry equal to index for that entity and the second entry the number of degrees of freedom (zero if sub entity is not in entity set of the mapper)
References Dune::Geo::ReferenceElements< ctype_, dim >::general(), Dune::FloatCmp::gt(), Dune::GeometryType::isNone(), Dune::GeometryTypes::none(), and Dune::MultipleCodimMultipleGeomTypeMapper< GV, LayoutClass >::subIndex().
◆ 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::fillGridViewInfoSerial(), Dune::P0VTKFunction< GV, V >::P0VTKFunction(), and Dune::P1VTKFunction< GV, V >::P1VTKFunction().
◆ subIndex()
|
inline |
Map subentity of codim 0 entity to starting index in array for dof block.
- 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::Geo::ReferenceElements< ctype_, dim >::general(), Dune::FloatCmp::gt(), Dune::GeometryType::isNone(), and Dune::GeometryTypes::none().
Referenced by Dune::VTKWriter< GridView >::countEntities(), Dune::P1VTKFunction< GV, V >::evaluate(), Dune::VTKWriter< GridView >::CornerIterator::id(), and Dune::MultipleCodimMultipleGeomTypeMapper< GV, LayoutClass >::indices().
The documentation for this class was generated from the following file:
- dune/grid/common/mcmgmapper.hh