dune-fem 2.8.0
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | List of all members
Dune::Fem::AdaptiveIndexSetBase< TraitsImp > Class Template Reference

consecutive, persistent index set for the leaf level based on the grid's hierarchy index set More...

#include <dune/fem/gridpart/adaptiveleafindexset.hh>

Inheritance diagram for Dune::Fem::AdaptiveIndexSetBase< TraitsImp >:
Inheritance graph

Public Types

typedef BaseType::IndexType IndexType
 index type *‍/
 
typedef BaseType::Types Types
 geometry type range type *‍/
 
typedef BaseType::template Codim< 0 >::Entity ElementType
 type of codimension 0 Entity
 
typedef GridPartType::IntersectionIteratorType IntersectionIteratorType
 type of intersection iterator
 
typedef GridPartType::IntersectionType IntersectionType
 type of intersections
 

Public Member Functions

void requestCodimensions (const std::vector< int > &codimensions) const
 
 AdaptiveIndexSetBase (const GridType *grid)
 Constructor.
 
 AdaptiveIndexSetBase (const GridPartType &gridPart)
 Constructor.
 
int type () const
 return type of index set, for GrapeDataIO
 
virtual std::string name () const
 return name of index set
 
IndexType size (GeometryType type) const
 return number of entities of given type *‍/
 
IndexType size (int codim) const
 return number of entities of given type *‍/
 
const std::vector< GeometryType > & geomTypes (const int codim) const
 *‍/
 
Types types (const int codim) const
 return range of geometry types *‍/
 
template<class EntityType >
bool contains (const EntityType &en) const
 return true if entity has index *‍/
 
void insertEntity (const GridElementType &entity)
 please doc me *‍/
 
void removeEntity (const GridElementType &entity)
 please doc me *‍/
 
void resizeVectors ()
 reallocate the vector for new size
 
void resize ()
 please doc me *‍/
 
bool compress ()
 please doc me *‍/
 
template<class Entity >
IndexType index (const Entity &entity) const
 return number of entities of given type *‍/
 
template<int codim>
IndexType index (const typename GridPartType::template Codim< codim >::EntityType &entity) const
 return number of entities of given type *‍/
 
IndexType index (const IntersectionType &intersection) const
 
IndexType subIndex (const IntersectionType &intersection, int subNumber, unsigned int codim) const
 
template<class Entity >
IndexType subIndex (const Entity &entity, int subNumber, unsigned int codim) const
 return index for given subentity *‍/
 
template<int cd>
IndexType subIndex (const typename GridPartType::template Codim< cd >::EntityType &entity, int subNumber, unsigned int codim) const
 return index for given subentity *‍/
 
int numberOfHoles (GeometryType type) const
 return number of holes for given type *‍/
 
int numberOfHoles (const int codim) const
 return number of holes of the sets indices
 
int oldIndex (int hole, GeometryType type) const
 return old index for given hole and type *‍/
 
int oldIndex (const int hole, const int codim) const
 return old index, for dof manager only
 
int newIndex (int hole, GeometryType type) const
 return new index for given hole and type *‍/
 
int newIndex (const int hole, const int codim) const
 return new index, for dof manager only returns index
 
template<class StreamTraits >
bool write (OutStreamInterface< StreamTraits > &out) const
 please doc me *‍/
 
template<class StreamTraits >
bool read (InStreamInterface< StreamTraits > &in)
 please doc me *‍/
 
void backup () const
 please doc me
 
void restore ()
 please doc me
 
void addBackupRestore () override final
 please doc me
 
void removeBackupRestore () override final
 please doc me
 

Static Public Attributes

static const int dimension = BaseType::dimension
 grid dimension *‍/
 
static const int numCodimensions = TraitsImp :: numCodimensions
 number of supported codimensions
 
static const int intersectionCodimension = TraitsImp :: intersectionCodimension
 intersection codimension (numCodim-1 if enabled, otherwise -1)
 
static const bool hasSingleGeometryType = Dune::Capabilities::hasSingleGeometryType< GridType > :: v
 true if only one geometry type is available
 

Protected Types

typedef TraitsImp::GridPartType GridPartType
 
typedef GridPartType::GridType GridType
 
typedef TraitsImp::CodimIndexSetType CodimIndexSetType
 
typedef GridType::template Codim< 0 >::Entity GridElementType
 
typedef DofManager< GridTypeDofManagerType
 dof manager type
 

Protected Member Functions

bool codimAvailable (const int codim) const
 
bool codimUsed (const int codim) const
 
CodimIndexSetTypecodimLeafSet (const int codim) const
 
void insertIndex (const GridElementType &entity)
 
void insertIntersections (const GridElementType &entity) const
 
void insertTemporary (const GridElementType &entity)
 
void removeIndex (const GridElementType &entity)
 
void checkHierarchy (const GridElementType &entity, bool wasNew)
 
template<PartitionIteratorType pt>
void markAllUsed ()
 
void clear ()
 clear index set (only for structured grids)
 
void setupIndexSet ()
 mark all indices of interest
 
template<PartitionIteratorType pt>
void markAllBelowOld ()
 
template<int codim>
void setupCodimSet (const std::integral_constant< bool, true > &hasEntities) const
 
template<int codim>
void setupCodimSet (const std::integral_constant< bool, false > &hasEntities) const
 
void setupIntersections () const
 
template<int codim>
IndexType countElements (GeometryType type, const std::integral_constant< bool, true > &hasEntities) const
 
template<int codim>
IndexType countElements (GeometryType type, const std::integral_constant< bool, false > &hasEntities) const
 
FaceType getIntersectionFace (const IntersectionType &intersection) const
 
FaceType getIntersectionFace (const IntersectionType &intersection, const ElementType &inside) const
 

Protected Attributes

const GridTypegrid_
 
DofManagerTypedofManager_
 

Detailed Description

template<class TraitsImp>
class Dune::Fem::AdaptiveIndexSetBase< TraitsImp >

consecutive, persistent index set for the leaf level based on the grid's hierarchy index set

This index set generates a consecutive leaf index out of the unique global index of each entity. It can be used instead of the default grid index sets and can be generated for each grid implementation.

Note
The base implementation can support either only one codimension or all codimensions of the grid.

Member Typedef Documentation

◆ CodimIndexSetType

template<class TraitsImp >
typedef TraitsImp::CodimIndexSetType Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::CodimIndexSetType
protected

◆ DofManagerType

template<class Traits , template< class > class Base>
typedef DofManager< GridType > Dune::Fem::PersistentIndexSet< Traits, Base >::DofManagerType
protectedinherited

dof manager type

◆ ElementType

template<class TraitsImp >
typedef BaseType::template Codim<0>::Entity Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::ElementType

type of codimension 0 Entity

◆ GridElementType

template<class TraitsImp >
typedef GridType::template Codim<0>::Entity Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::GridElementType
protected

◆ GridPartType

template<class TraitsImp >
typedef TraitsImp::GridPartType Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::GridPartType
protected

◆ GridType

template<class TraitsImp >
typedef GridPartType::GridType Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::GridType
protected

◆ IndexType

template<class TraitsImp >
typedef BaseType::IndexType Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::IndexType

index type *‍/

*‍/

◆ IntersectionIteratorType

template<class TraitsImp >
typedef GridPartType::IntersectionIteratorType Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::IntersectionIteratorType

type of intersection iterator

◆ IntersectionType

template<class TraitsImp >
typedef GridPartType::IntersectionType Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::IntersectionType

type of intersections

◆ Types

template<class TraitsImp >
typedef BaseType::Types Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::Types

geometry type range type *‍/

*‍/

Constructor & Destructor Documentation

◆ AdaptiveIndexSetBase() [1/2]

template<class TraitsImp >
Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::AdaptiveIndexSetBase ( const GridType grid)
inline

Constructor.

◆ AdaptiveIndexSetBase() [2/2]

template<class TraitsImp >
Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::AdaptiveIndexSetBase ( const GridPartType gridPart)
inline

Constructor.

get geometry types (not working for hybrid grids, like to whole set itself)

Member Function Documentation

◆ addBackupRestore()

template<class Traits , template< class > class Base>
void Dune::Fem::PersistentIndexSet< Traits, Base >::addBackupRestore ( )
inlinefinaloverridevirtualinherited

please doc me

Implements Dune::Fem::PersistentIndexSetInterface.

◆ backup()

template<class Traits , template< class > class Base>
void Dune::Fem::PersistentIndexSet< Traits, Base >::backup ( ) const
inlineinherited

please doc me

◆ checkHierarchy()

template<class TraitsImp >
void Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::checkHierarchy ( const GridElementType entity,
bool  wasNew 
)
inlineprotected

◆ clear()

template<class TraitsImp >
void Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::clear
inlineprotected

clear index set (only for structured grids)

◆ codimAvailable()

template<class TraitsImp >
bool Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::codimAvailable ( const int  codim) const
inlineprotected

◆ codimLeafSet()

template<class TraitsImp >
CodimIndexSetType & Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::codimLeafSet ( const int  codim) const
inlineprotected

◆ codimUsed()

template<class TraitsImp >
bool Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::codimUsed ( const int  codim) const
inlineprotected

◆ compress()

template<class TraitsImp >
bool Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::compress
inline

please doc me *‍/

*‍/

◆ contains()

template<class TraitsImp >
template<class EntityType >
bool Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::contains ( const EntityType &  en) const
inline

return true if entity has index *‍/

*‍/

◆ countElements() [1/2]

template<class TraitsImp >
template<int codim>
AdaptiveIndexSetBase< TraitsImp >::IndexType Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::countElements ( GeometryType  type,
const std::integral_constant< bool, false > &  hasEntities 
) const
inlineprotected

◆ countElements() [2/2]

template<class TraitsImp >
template<int codim>
AdaptiveIndexSetBase< TraitsImp >::IndexType Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::countElements ( GeometryType  type,
const std::integral_constant< bool, true > &  hasEntities 
) const
inlineprotected

◆ geomTypes()

template<class TraitsImp >
const std::vector< GeometryType > & Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::geomTypes ( const int  codim) const
inline

*‍/

*‍/

◆ getIntersectionFace() [1/2]

template<class TraitsImp >
FaceType Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::getIntersectionFace ( const IntersectionType intersection) const
inlineprotected

◆ getIntersectionFace() [2/2]

template<class TraitsImp >
FaceType Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::getIntersectionFace ( const IntersectionType intersection,
const ElementType inside 
) const
inlineprotected

◆ index() [1/3]

template<class TraitsImp >
template<class Entity >
IndexType Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::index ( const Entity &  entity) const
inline

return number of entities of given type *‍/

*‍/

◆ index() [2/3]

template<class TraitsImp >
IndexType Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::index ( const IntersectionType intersection) const
inline

◆ index() [3/3]

template<class TraitsImp >
template<int codim>
IndexType Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::index ( const typename GridPartType::template Codim< codim >::EntityType &  entity) const
inline

return number of entities of given type *‍/

*‍/

◆ insertEntity()

template<class TraitsImp >
void Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::insertEntity ( const GridElementType entity)
inline

please doc me *‍/

*‍/

◆ insertIndex()

template<class TraitsImp >
void Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::insertIndex ( const GridElementType entity)
inlineprotected

◆ insertIntersections()

template<class TraitsImp >
void Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::insertIntersections ( const GridElementType entity) const
inlineprotected

◆ insertTemporary()

template<class TraitsImp >
void Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::insertTemporary ( const GridElementType entity)
inlineprotected

◆ markAllBelowOld()

template<class TraitsImp >
template<PartitionIteratorType pt>
void Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::markAllBelowOld
inlineprotected

◆ markAllUsed()

template<class TraitsImp >
template<PartitionIteratorType pt>
void Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::markAllUsed
inlineprotected

◆ name()

template<class TraitsImp >
virtual std::string Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::name ( ) const
inlinevirtual

◆ newIndex() [1/2]

template<class TraitsImp >
int Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::newIndex ( const int  hole,
const int  codim 
) const
inline

return new index, for dof manager only returns index

◆ newIndex() [2/2]

template<class TraitsImp >
int Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::newIndex ( int  hole,
GeometryType  type 
) const
inline

return new index for given hole and type *‍/

*‍/

◆ numberOfHoles() [1/2]

template<class TraitsImp >
int Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::numberOfHoles ( const int  codim) const
inline

return number of holes of the sets indices

◆ numberOfHoles() [2/2]

template<class TraitsImp >
int Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::numberOfHoles ( GeometryType  type) const
inline

return number of holes for given type *‍/

*‍/

◆ oldIndex() [1/2]

template<class TraitsImp >
int Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::oldIndex ( const int  hole,
const int  codim 
) const
inline

return old index, for dof manager only

◆ oldIndex() [2/2]

template<class TraitsImp >
int Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::oldIndex ( int  hole,
GeometryType  type 
) const
inline

return old index for given hole and type *‍/

*‍/

◆ read()

template<class TraitsImp >
template<class StreamTraits >
bool Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::read ( InStreamInterface< StreamTraits > &  in)
inline

please doc me *‍/

*‍/

◆ removeBackupRestore()

template<class Traits , template< class > class Base>
void Dune::Fem::PersistentIndexSet< Traits, Base >::removeBackupRestore ( )
inlinefinaloverridevirtualinherited

please doc me

Implements Dune::Fem::PersistentIndexSetInterface.

◆ removeEntity()

template<class TraitsImp >
void Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::removeEntity ( const GridElementType entity)
inline

please doc me *‍/

*‍/

◆ removeIndex()

template<class TraitsImp >
void Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::removeIndex ( const GridElementType entity)
inlineprotected

◆ requestCodimensions()

template<class TraitsImp >
void Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::requestCodimensions ( const std::vector< int > &  codimensions) const
inline

◆ resize()

template<class TraitsImp >
void Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::resize ( )
inline

please doc me *‍/

*‍/

◆ resizeVectors()

template<class TraitsImp >
void Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::resizeVectors
inline

reallocate the vector for new size

◆ restore()

template<class Traits , template< class > class Base>
void Dune::Fem::PersistentIndexSet< Traits, Base >::restore ( )
inlineinherited

please doc me

◆ setupCodimSet() [1/2]

template<class TraitsImp >
template<int codim>
void Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::setupCodimSet ( const std::integral_constant< bool, false > &  hasEntities) const
inlineprotected

◆ setupCodimSet() [2/2]

template<class TraitsImp >
template<int codim>
void Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::setupCodimSet ( const std::integral_constant< bool, true > &  hasEntities) const
inlineprotected

◆ setupIndexSet()

template<class TraitsImp >
void Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::setupIndexSet
inlineprotected

mark all indices of interest

◆ setupIntersections()

template<class TraitsImp >
void Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::setupIntersections
inlineprotected

◆ size() [1/2]

template<class TraitsImp >
IndexType Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::size ( GeometryType  type) const
inline

return number of entities of given type *‍/

*‍/

◆ size() [2/2]

template<class TraitsImp >
IndexType Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::size ( int  codim) const
inline

return number of entities of given type *‍/

*‍/

◆ subIndex() [1/3]

template<class TraitsImp >
template<class Entity >
IndexType Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::subIndex ( const Entity &  entity,
int  subNumber,
unsigned int  codim 
) const
inline

return index for given subentity *‍/

*‍/

◆ subIndex() [2/3]

template<class TraitsImp >
IndexType Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::subIndex ( const IntersectionType intersection,
int  subNumber,
unsigned int  codim 
) const
inline

◆ subIndex() [3/3]

template<class TraitsImp >
template<int cd>
IndexType Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::subIndex ( const typename GridPartType::template Codim< cd >::EntityType &  entity,
int  subNumber,
unsigned int  codim 
) const
inline

return index for given subentity *‍/

*‍/

◆ type()

template<class TraitsImp >
int Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::type ( ) const
inline

return type of index set, for GrapeDataIO

◆ types()

template<class TraitsImp >
Types Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::types ( const int  codim) const
inline

return range of geometry types *‍/

*‍/

◆ write()

template<class TraitsImp >
template<class StreamTraits >
bool Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::write ( OutStreamInterface< StreamTraits > &  out) const
inline

please doc me *‍/

*‍/

Member Data Documentation

◆ dimension

template<class TraitsImp >
const int Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::dimension = BaseType::dimension
static

grid dimension *‍/

*‍/

◆ dofManager_

template<class Traits , template< class > class Base>
DofManagerType& Dune::Fem::PersistentIndexSet< Traits, Base >::dofManager_
protectedinherited

◆ grid_

template<class Traits , template< class > class Base>
const GridType& Dune::Fem::PersistentIndexSet< Traits, Base >::grid_
protectedinherited

◆ hasSingleGeometryType

template<class TraitsImp >
const bool Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::hasSingleGeometryType = Dune::Capabilities::hasSingleGeometryType< GridType > :: v
static

true if only one geometry type is available

◆ intersectionCodimension

template<class TraitsImp >
const int Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::intersectionCodimension = TraitsImp :: intersectionCodimension
static

intersection codimension (numCodim-1 if enabled, otherwise -1)

◆ numCodimensions

template<class TraitsImp >
const int Dune::Fem::AdaptiveIndexSetBase< TraitsImp >::numCodimensions = TraitsImp :: numCodimensions
static

number of supported codimensions


The documentation for this class was generated from the following file: