Dune Core Modules (2.9.0)

Dune::LevelMultipleCodimMultipleGeomTypeMapper< G > Class Template Reference

Multiple codim and multiple geometry type mapper for entities of one level. More...

#include <dune/grid/common/mcmgmapper.hh>

Public Types

typedef G::LevelGridView 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

 LevelMultipleCodimMultipleGeomTypeMapper (const G &grid, int level, const MCMGLayout &layout)
 constructor More...
 
void update ()
 Recalculates indices after grid adaptation. More...
 
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...
 
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...
 
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
 
IntegralRange< Indexindices (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< Indexindices (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...
 
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...
 
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 (const G::LevelGridView &gridView)
 Recalculates indices after grid adaptation. More...
 
void update (G::LevelGridView &&gridView)
 Recalculates indices after grid adaptation. More...
 
void update (GridView &&gridView)
 Reinitialize mapper after grid has been modified.
 

Detailed Description

template<typename G>
class Dune::LevelMultipleCodimMultipleGeomTypeMapper< G >

Multiple codim and multiple geometry type mapper for entities of one level.

This mapper uses all entities of a certain codimension on a given level as its entity set.

Deprecated:
Use MultipleCodimMultipleGeomTypeMapper instead
Template Parameters
GA Dune grid type.

Member Typedef Documentation

◆ size_type

using Dune::MultipleCodimMultipleGeomTypeMapper< G::LevelGridView >::size_type = decltype(std::declval<typename GV::IndexSet>().size(0))
inherited

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

◆ LevelMultipleCodimMultipleGeomTypeMapper()

template<typename G >
Dune::LevelMultipleCodimMultipleGeomTypeMapper< G >::LevelMultipleCodimMultipleGeomTypeMapper ( const G &  grid,
int  level,
const MCMGLayout layout 
)
inline

constructor

Parameters
gridreference to the grid
levelvalid level of the grid
layoutlayout functional describing which geometry types to include in the map.

Member Function Documentation

◆ contains() [1/3]

bool Dune::MultipleCodimMultipleGeomTypeMapper< G::LevelGridView >::contains ( const EntityType &  e,
Index result 
) const
inlineinherited

Returns true if the entity is contained in the index set.

Parameters
eReference to entity
resultinteger reference where corresponding index is stored if true
Returns
true if entity is in entity set of the mapper

◆ contains() [2/3]

bool Dune::Mapper< GV::Grid , MultipleCodimMultipleGeomTypeMapper< G::LevelGridView > , GV::IndexSet::IndexType >::contains ( const typename G::Traits::template Codim< 0 >::Entity &  e,
int  i,
int  cc,
GV::IndexSet::IndexType &  result 
) const
inlineinherited

Returns true if the subentity is contained in the index set and at the same time the array index is returned.

Parameters
[in]eReference to codim 0 entity
[in]isubentity number
[in]ccsubentity codim
[out]resultFilled with array index if entity is contained
Returns
true if entity is in entity set of the mapper

◆ contains() [3/3]

bool Dune::MultipleCodimMultipleGeomTypeMapper< G::LevelGridView >::contains ( const typename GV::template Codim< 0 >::Entity &  e,
int  i,
int  cc,
Index result 
) const
inlineinherited

Returns true if the entity is contained in the index set.

Parameters
eReference to codim 0 entity
isubentity number
ccsubentity codim
resultinteger reference where corresponding index is stored if true
Returns
true if entity is in entity set of the mapper

◆ index()

Index Dune::MultipleCodimMultipleGeomTypeMapper< G::LevelGridView >::index ( const EntityType &  e) const
inlineinherited

Map entity to starting index in array for dof block.

Template Parameters
EntityType
Parameters
eReference to codim EntityType entity.
Returns
An index in the range 0 ... (Max number of entities in set)*blockSize - 1.

◆ indices() [1/2]

IntegralRange< Index > Dune::MultipleCodimMultipleGeomTypeMapper< G::LevelGridView >::indices ( const EntityType &  e) const
inlineinherited

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
eReference to entity
resultinteger 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)

◆ indices() [2/2]

IntegralRange< Index > Dune::MultipleCodimMultipleGeomTypeMapper< G::LevelGridView >::indices ( const typename GV::template Codim< 0 >::Entity &  e,
int  i,
int  cc 
) const
inlineinherited

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
eReference to codim 0 entity
isubentity number
ccsubentity codim
resultinteger 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)

◆ size()

size_type Dune::MultipleCodimMultipleGeomTypeMapper< G::LevelGridView >::size ( ) const
inlineinherited

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.

◆ subIndex() [1/2]

Index Dune::Mapper< GV::Grid , MultipleCodimMultipleGeomTypeMapper< G::LevelGridView > , GV::IndexSet::IndexType >::subIndex ( const typename G::Traits::template Codim< 0 >::Entity &  e,
int  i,
unsigned int  codim 
) const
inlineinherited

Map subentity i of codim cc of a codim 0 entity to array index.

Parameters
eReference to codim 0 entity.
iNumber of codim cc subentity of e, where cc is the template parameter of the function.
codimcodimension of subentity of e
Returns
An index in the range 0 ... Max number of entities in set - 1.

◆ subIndex() [2/2]

Index Dune::MultipleCodimMultipleGeomTypeMapper< G::LevelGridView >::subIndex ( const typename GV::template Codim< 0 >::Entity &  e,
int  i,
unsigned int  codim 
) const
inlineinherited

Map subentity of codim 0 entity to starting index in array for dof block.

Parameters
eReference to codim 0 entity.
iNumber of subentity of e
codimCodimension of the subentity
Returns
An index in the range 0 ... Max number of entities in set - 1.

◆ update() [1/3]

template<typename G >
void Dune::LevelMultipleCodimMultipleGeomTypeMapper< G >::update ( )
inline

Recalculates indices after grid adaptation.

After grid adaptation you need to call this to update the stored gridview and recalculate the indices.

◆ update() [2/3]

void Dune::MultipleCodimMultipleGeomTypeMapper< G::LevelGridView >::update ( const G::LevelGridView &  gridView)
inlineinherited

Recalculates indices after grid adaptation.

After grid adaptation you need to call this to update the stored gridview and recalculate the indices.

◆ update() [3/3]

void Dune::MultipleCodimMultipleGeomTypeMapper< G::LevelGridView >::update ( G::LevelGridView &&  gridView)
inlineinherited

Recalculates indices after grid adaptation.

After grid adaptation you need to call this to update the stored gridview and recalculate the indices.


The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Dec 29, 23:29, 2024)