dune-fem  2.4.1-rc
Classes | Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | List of all members
Dune::Fem::GenericAdaptiveDofMapper< TraitsImp > Class Template Reference

#include </local/tomalk/somewhere/tmp/dune-fem/dune/fem/space/mapper/genericadaptivedofmapper.hh>

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

Classes

struct  EntityDofStorage
 
struct  InsertSubEntities
 
struct  NumDofs
 
struct  NumDofs< codim, true >
 
struct  PolynomOrderStorage
 
struct  RemoveSubEntities
 

Public Types

enum  { minOrder = 1 }
 
enum  { maxOrder = polynomialOrder }
 
enum  { numOrders = maxOrder - minOrder + 1 }
 
typedef TraitsImp Traits
 
typedef Traits::GridPartType GridPartType
 type of the grid part More...
 
typedef Traits::ElementType ElementType
 type of entities (codim 0) More...
 
typedef GridPartType::GridType GridType
 type of the underlying grid More...
 
typedef GridPartType::IndexSetType IndexSetType
 type of the index set More...
 
typedef Traits::GlobalKeyType GlobalKeyType
 type of global key More...
 
typedef GridType::ctype FieldType
 type of coordinates within the grid More...
 
typedef Traits::CompiledLocalKeyVectorType CompiledLocalKeyVectorType
 type of vector containing compiled local keys More...
 
typedef CompiledLocalKeyVectorType::value_type::value_type CompiledLocalKeyType
 compiled local key type More...
 
typedef DofManager< GridTypeDofManagerType
 type of the DoF manager More...
 
typedef EntityDofStorage EntityDofStorageType
 
typedef PolynomOrderStorage PolynomOrderStorageType
 
typedef PersistentContainer< GridType, EntityDofStorageTypeDofContainerType
 
typedef PersistentContainer< GridType, PolynomOrderStorageTypePolyOrderContainerType
 
typedef BaseType::SizeType SizeType
 type of size integer More...
 
typedef Traits::DofMapperType DofMapperType
 type of the DofMapper implementation More...
 
typedef ElementType EntityType
 

Public Member Functions

 GenericAdaptiveDofMapper (const GridPartType &gridPart, CompiledLocalKeyVectorType &compiledLocalKeyVector)
 constructor More...
 
 GenericAdaptiveDofMapper (const GenericAdaptiveDofMapper &other, CompiledLocalKeyVectorType &compiledLocalKeyVector)
 sort of copy constructor More...
 
int polynomOrder (const ElementType &entity) const
 
void setPolynomOrder (const ElementType &entity, const int polOrd)
 
DofContainerTypedofContainer (const std::size_t codim) const
 
const CompiledLocalKeyTypecompiledLocalKey (const int polOrd, const GeometryType type) const
 
virtual ~GenericAdaptiveDofMapper ()
 destructor More...
 
int size () const
 return overall number of degrees of freedom More...
 
template<class Functor >
void mapEach (const ElementType &element, Functor f) const
 
int mapToGlobal (const ElementType &entity, const int localDof) const
 
template<class Entity , class Functor >
void mapEachEntityDof (const Entity &entity, Functor f) const
 map each local DoF number to a global key More...
 
int maxNumDofs () const
 obtain maximal number of DoFs on one entity More...
 
int numDofs (const ElementType &entity) const
 obtain number of DoFs on an entity More...
 
template<class Entity >
int numEntityDofs (const Entity &entity) const
 obtain number of DoFs actually belonging to an entity More...
 
bool contains (int codim) const
 Check, whether any DoFs are associated with a codimension. More...
 
bool fixedDataSize (int codim) const
 Check, whether the data in a codimension has fixed size. More...
 
int oldIndex (const int hole, const int block) const
 
int newIndex (const int hole, const int block) const
 
int numberOfHoles (const int block) const
 
int numBlocks () const
 
int oldOffSet (const int block) const
 
int offSet (const int block) const
 
bool consecutive () const
 
void resizeContainers ()
 
void insertEntity (const ElementType &entity)
 
unsigned int insertEntityDofs (const ElementType &entity)
 
void removeEntity (const ElementType &entity)
 
void resize ()
 
void adapt ()
 adjust mapper to newly set polynomial orders More...
 
unsigned int insertFather (const ElementType &entity)
 
bool considerHierarchy () const
 return true if elements can be refined more than once during adaptation More...
 
size_t insertAllUsed ()
 return number of DoFs currently used for space More...
 
void printDofs () const
 
void printEntityDofs (const ElementType &entity) const
 
void setUnused ()
 reset all used flags of all DoF entries More...
 
bool compress ()
 
void backup () const
 
void restore ()
 
template<class InStream >
void read (InStream &in)
 
template<class OutStream >
void write (OutStream &out)
 

Static Public Attributes

static const bool discontinuousMapper = Traits :: discontinuousMapper
 
static const int dimension = GridType::dimension
 dimension of the grid More...
 
static const int highestDimension = ( discontinuousMapper ) ? 0 : dimension
 highest codimension used to attach dofs More...
 
static const int polynomialOrder = Traits::polynomialOrder
 order of the Lagrange polynoms More...
 

Protected Member Functions

const TraitsImp::DofMapperType & asImp () const
 
TraitsImp::DofMapperType & asImp ()
 

Static Protected Member Functions

static const TraitsImp::DofMapperType & asImp (const ThisType &other)
 
static TraitsImp::DofMapperType & asImp (ThisType &other)
 

Member Typedef Documentation

template<class TraitsImp>
typedef CompiledLocalKeyVectorType :: value_type :: value_type Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::CompiledLocalKeyType

compiled local key type

type of vector containing compiled local keys

template<class TraitsImp>
typedef PersistentContainer< GridType, EntityDofStorageType > Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::DofContainerType
template<class TraitsImp>
typedef DofManager< GridType > Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::DofManagerType

type of the DoF manager

typedef Traits::DofMapperType Dune::Fem::DofMapper< TraitsImp >::DofMapperType
inherited

type of the DofMapper implementation

template<class TraitsImp>
typedef Traits::ElementType Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::ElementType

type of entities (codim 0)

template<class TraitsImp>
typedef EntityDofStorage Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::EntityDofStorageType
typedef ElementType Dune::Fem::DofMapper< TraitsImp >::EntityType
inherited
template<class TraitsImp>
typedef GridType::ctype Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::FieldType

type of coordinates within the grid

template<class TraitsImp>
typedef Traits :: GlobalKeyType Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::GlobalKeyType

type of global key

template<class TraitsImp>
typedef Traits::GridPartType Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::GridPartType

type of the grid part

template<class TraitsImp>
typedef GridPartType::GridType Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::GridType

type of the underlying grid

template<class TraitsImp>
typedef GridPartType::IndexSetType Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::IndexSetType

type of the index set

template<class TraitsImp>
typedef PolynomOrderStorage Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::PolynomOrderStorageType
template<class TraitsImp>
typedef PersistentContainer< GridType, PolynomOrderStorageType > Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::PolyOrderContainerType
typedef BaseType::SizeType Dune::Fem::AdaptiveDofMapper< TraitsImp >::SizeType
inherited

type of size integer

template<class TraitsImp>
typedef TraitsImp Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::Traits

Member Enumeration Documentation

template<class TraitsImp>
anonymous enum
Enumerator
minOrder 
template<class TraitsImp>
anonymous enum
Enumerator
maxOrder 
template<class TraitsImp>
anonymous enum
Enumerator
numOrders 

Constructor & Destructor Documentation

template<class TraitsImp>
Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::GenericAdaptiveDofMapper ( const GridPartType gridPart,
CompiledLocalKeyVectorType compiledLocalKeyVector 
)
inline
template<class TraitsImp>
Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::GenericAdaptiveDofMapper ( const GenericAdaptiveDofMapper< TraitsImp > &  other,
CompiledLocalKeyVectorType compiledLocalKeyVector 
)
inline

sort of copy constructor

template<class TraitsImp>
virtual Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::~GenericAdaptiveDofMapper ( )
inlinevirtual

destructor

Member Function Documentation

template<class TraitsImp>
void Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::adapt ( )
inline

adjust mapper to newly set polynomial orders

static const TraitsImp::DofMapperType & Dune::Fem::BartonNackmanInterface< DofMapper< TraitsImp > , TraitsImp::DofMapperType >::asImp ( const ThisType other)
inlinestaticprotectedinherited
static TraitsImp::DofMapperType & Dune::Fem::BartonNackmanInterface< DofMapper< TraitsImp > , TraitsImp::DofMapperType >::asImp ( ThisType other)
inlinestaticprotectedinherited
const TraitsImp::DofMapperType & Dune::Fem::BartonNackmanInterface< DofMapper< TraitsImp > , TraitsImp::DofMapperType >::asImp ( ) const
inlineprotectedinherited
TraitsImp::DofMapperType & Dune::Fem::BartonNackmanInterface< DofMapper< TraitsImp > , TraitsImp::DofMapperType >::asImp ( )
inlineprotectedinherited
template<class TraitsImp>
void Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::backup ( ) const
inline
template<class TraitsImp>
const CompiledLocalKeyType& Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::compiledLocalKey ( const int  polOrd,
const GeometryType  type 
) const
inline
template<class TraitsImp>
bool Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::compress ( )
inline
template<class TraitsImp>
bool Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::consecutive ( ) const
inline

template<class TraitsImp>
bool Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::considerHierarchy ( ) const
inline

return true if elements can be refined more than once during adaptation

Referenced by Dune::Fem::GenericAdaptiveDofMapper< PAdaptiveLagrangeMapperTraits< GridPart, polOrder > >::insertAllUsed().

template<class TraitsImp>
bool Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::contains ( int  codim) const
inline

Check, whether any DoFs are associated with a codimension.

template<class TraitsImp>
DofContainerType& Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::dofContainer ( const std::size_t  codim) const
inline
template<class TraitsImp>
bool Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::fixedDataSize ( int  codim) const
inline

Check, whether the data in a codimension has fixed size.

template<class TraitsImp>
size_t Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::insertAllUsed ( )
inline
template<class TraitsImp>
void Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::insertEntity ( const ElementType entity)
inline
template<class TraitsImp>
unsigned int Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::insertEntityDofs ( const ElementType entity)
inline
template<class TraitsImp>
unsigned int Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::insertFather ( const ElementType entity)
inline
template<class TraitsImp>
template<class Functor >
void Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::mapEach ( const ElementType element,
Functor  f 
) const
inline
template<class TraitsImp>
template<class Entity , class Functor >
void Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::mapEachEntityDof ( const Entity &  entity,
Functor  f 
) const
inline

map each local DoF number to a global key

Parameters
[in]entityentity, the DoFs belong to
[in]ffunctor to call for each DoF

The functor has to be a copyable object satisfying the following interface:

struct Functor
{
// application operator
template< class GlobalKey >
void operator() ( const int localDoF, const GlobalKey &globalKey );
};

For each DoF to be mapped, this method will call the application operator once.

Note
There is no guarantee on the order, in which the functor is applied.
The global key has to be compatible with the Dof storage.
template<class TraitsImp>
int Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::mapToGlobal ( const ElementType entity,
const int  localDof 
) const
inline
template<class TraitsImp>
int Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::maxNumDofs ( ) const
inline

obtain maximal number of DoFs on one entity

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

template<class TraitsImp>
int Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::numberOfHoles ( const int  block) const
inline

template<class TraitsImp>
int Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::numBlocks ( ) const
inline

template<class TraitsImp>
int Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::numDofs ( const ElementType entity) const
inline
template<class TraitsImp>
template<class Entity >
int Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::numEntityDofs ( const Entity &  entity) const
inline

obtain number of DoFs actually belonging to an entity

In contrast to numDofs, this method returns the number of DoFs actually associated with an entity (usually a subentity). We have the following relation for an entity $E$ of codimension 0:

\[ \mathrm{numDofs}( E ) = \sum_{e \subset E} \mathrm{numEntityDofs}( e ), \]

where $\subset$ denotes the subentity relation.

Parameters
[in]entityentity of codimension
Returns
number of DoFs on the entity

Referenced by Dune::Fem::GenericAdaptiveDofMapper< PAdaptiveLagrangeMapperTraits< GridPart, polOrder > >::mapEachEntityDof().

template<class TraitsImp>
int Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::offSet ( const int  block) const
inline

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

template<class TraitsImp>
int Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::oldOffSet ( const int  block) const
inline

template<class TraitsImp>
int Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::polynomOrder ( const ElementType entity) const
inline
template<class TraitsImp>
void Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::printDofs ( ) const
inline
template<class TraitsImp>
void Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::printEntityDofs ( const ElementType entity) const
inline
template<class TraitsImp>
template<class InStream >
void Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::read ( InStream &  in)
inline
template<class TraitsImp>
void Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::removeEntity ( const ElementType entity)
inline
template<class TraitsImp>
void Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::resize ( )
inline
template<class TraitsImp>
void Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::resizeContainers ( )
inline
template<class TraitsImp>
void Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::restore ( )
inline
template<class TraitsImp>
void Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::setPolynomOrder ( const ElementType entity,
const int  polOrd 
)
inline
template<class TraitsImp>
void Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::setUnused ( )
inline
template<class TraitsImp>
int Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::size ( ) const
inline
template<class TraitsImp>
template<class OutStream >
void Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::write ( OutStream &  out)
inline

Member Data Documentation

template<class TraitsImp>
const int Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::dimension = GridType::dimension
static

dimension of the grid

template<class TraitsImp>
const bool Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::discontinuousMapper = Traits :: discontinuousMapper
static
template<class TraitsImp>
const int Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::highestDimension = ( discontinuousMapper ) ? 0 : dimension
static
template<class TraitsImp>
const int Dune::Fem::GenericAdaptiveDofMapper< TraitsImp >::polynomialOrder = Traits::polynomialOrder
static

order of the Lagrange polynoms


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