dune-grid 2.9.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. More... | |
typedef GV::IndexSet::IndexType | Index |
Number type used for indices. More... | |
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 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 More... | |
const std::vector< GeometryType > & | types (int codim) const |
return the geometry types with entries More... | |
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 (const GV &gridView) |
Recalculates indices after grid adaptation. More... | |
void | update (GV &&gridView) |
Recalculates indices after grid adaptation. More... | |
void | update () |
Recalculates indices after grid adaptation. More... | |
const MCMGLayout & | layout () const |
const GridView & | gridView () const |
Index | subIndex (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, GV::IndexSet::IndexType &result) const |
Returns true if the subentity is contained in the index set and at the same time the array index is returned. More... | |
void | update (GridView &&gridView) |
Reinitialize mapper after grid has been modified. More... | |
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.
The geometry types to be included in the mapper are selected using a layout functional (MCMGLayout) that is passed to the constructor.
typedef GV Dune::MultipleCodimMultipleGeomTypeMapper< GV >::GridView |
Underlying GridView.
typedef GV::IndexSet::IndexType Dune::MultipleCodimMultipleGeomTypeMapper< GV >::Index |
Number type used for indices.
using Dune::MultipleCodimMultipleGeomTypeMapper< GV >::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.
|
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.
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) |
|
inline |
Returns true if the entity is contained in the index set.
e | Reference to entity |
result | integer reference where corresponding index is stored if true |
|
inlineinherited |
Returns true if the subentity is contained in the index set and at the same time the array index is returned.
[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 |
|
inline |
Returns true if the entity is contained in the index set.
e | Reference to codim 0 entity |
i | subentity number |
cc | subentity codim |
result | integer reference where corresponding index is stored if true |
|
inline |
|
inline |
Map entity to starting index in array for dof block.
EntityType |
e | Reference to codim EntityType entity. |
|
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.
e | Reference to entity |
result | integer reference to the start of the block |
|
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.
e | Reference to codim 0 entity |
i | subentity number |
cc | subentity codim |
result | integer reference to the start of the block |
|
inline |
|
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).
|
inline |
return number of entries for a given geometry type
|
inlineinherited |
Map subentity i of codim cc of a codim 0 entity to array index.
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 |
|
inline |
Map subentity of codim 0 entity to starting index in array for dof block.
e | Reference to codim 0 entity. |
i | Number of subentity of e |
codim | Codimension of the subentity |
|
inline |
return the geometry types with entries
|
inline |
Recalculates indices after grid adaptation.
|
inline |
Recalculates indices after grid adaptation.
After grid adaptation you need to call this to update the stored gridview and recalculate the indices.
|
inlineinherited |
Reinitialize mapper after grid has been modified.
|
inline |
Recalculates indices after grid adaptation.
After grid adaptation you need to call this to update the stored gridview and recalculate the indices.