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

Interface for calculating the size of a function space for a grid on a specified level. Furthermore the local to global mapping of dof number is done. Also during grid adaptation this mapper knows about old and new indices of entities. More...

#include <dune/fem/space/mapper/dofmapper.hh>

Inheritance diagram for Dune::Fem::DofMapper< DofMapperTraits >:
Inheritance graph

Public Types

typedef DofMapperTraits Traits
 
typedef Traits::DofMapperType DofMapperType
 type of the DofMapper implementation
 
typedef Traits::ElementType ElementType
 type of codimension 0 entities
 
typedef Traits::SizeType SizeType
 type of size integer
 
typedef ElementType EntityType
 

Public Member Functions

SizeType size () const
 return number of dofs for special function space and grid on specified level

 
bool contains (const int codim) const
 returns true if DoFs for given codimension exist
 
bool fixedDataSize (const int codim) const
 Check, whether the data in a codimension has fixed size.
 
template<class Functor >
void mapEach (const ElementType &element, Functor f) const
 map each local DoF number to a global key
 
template<class Entity , class Functor >
void mapEachEntityDof (const Entity &entity, Functor f) const
 map each local DoF number to a global key
 
int maxNumDofs () const
 obtain maximal number of DoFs on one entity
 
SizeType numDofs (const ElementType &element) const
 obtain number of DoFs on an entity
 
template<class Entity >
SizeType numEntityDofs (const Entity &entity) const
 obtain number of DoFs actually belonging to an entity
 
void update ()
 update DoF mapping after grid modification
 

Protected Member Functions

const Implementation & asImp () const
 
Implementation & asImp ()
 

Static Protected Member Functions

static const Implementation & asImp (const ThisType &other)
 
static Implementation & asImp (ThisType &other)
 
static const DofMapperTraits ::DofMapperTypeasImp (const ThisType &other)
 
static DofMapperTraits ::DofMapperTypeasImp (ThisType &other)
 

Detailed Description

template<class DofMapperTraits>
class Dune::Fem::DofMapper< DofMapperTraits >

Interface for calculating the size of a function space for a grid on a specified level. Furthermore the local to global mapping of dof number is done. Also during grid adaptation this mapper knows about old and new indices of entities.

Member Typedef Documentation

◆ DofMapperType

template<class DofMapperTraits >
typedef Traits::DofMapperType Dune::Fem::DofMapper< DofMapperTraits >::DofMapperType

type of the DofMapper implementation

◆ ElementType

template<class DofMapperTraits >
typedef Traits::ElementType Dune::Fem::DofMapper< DofMapperTraits >::ElementType

type of codimension 0 entities

◆ EntityType

template<class DofMapperTraits >
typedef ElementType Dune::Fem::DofMapper< DofMapperTraits >::EntityType

◆ SizeType

template<class DofMapperTraits >
typedef Traits::SizeType Dune::Fem::DofMapper< DofMapperTraits >::SizeType

type of size integer

◆ Traits

template<class DofMapperTraits >
typedef DofMapperTraits Dune::Fem::DofMapper< DofMapperTraits >::Traits

Member Function Documentation

◆ asImp() [1/6]

template<class DofMapperTraits >
Implementation & Dune::Fem::BartonNackmanInterface< Interface, Implementation >::asImp ( )
inlineprotected

◆ asImp() [2/6]

template<class DofMapperTraits >
const Implementation & Dune::Fem::BartonNackmanInterface< Interface, Implementation >::asImp ( ) const
inlineprotected

◆ asImp() [3/6]

static const DofMapperTraits ::DofMapperType & Dune::Fem::BartonNackmanInterface< DofMapper< DofMapperTraits > , DofMapperTraits ::DofMapperType >::asImp ( const ThisType other)
inlinestaticprotectedinherited

◆ asImp() [4/6]

template<class DofMapperTraits >
static const Implementation & Dune::Fem::BartonNackmanInterface< Interface, Implementation >::asImp ( const ThisType other)
inlinestaticprotected

◆ asImp() [5/6]

static DofMapperTraits ::DofMapperType & Dune::Fem::BartonNackmanInterface< DofMapper< DofMapperTraits > , DofMapperTraits ::DofMapperType >::asImp ( ThisType other)
inlinestaticprotectedinherited

◆ asImp() [6/6]

template<class DofMapperTraits >
static Implementation & Dune::Fem::BartonNackmanInterface< Interface, Implementation >::asImp ( ThisType other)
inlinestaticprotected

◆ contains()

template<class DofMapperTraits >
bool Dune::Fem::DofMapper< DofMapperTraits >::contains ( const int  codim) const
inline

returns true if DoFs for given codimension exist

Parameters
[in]codimcodimension to check
Returns
true if DoFs for codimension exist

◆ fixedDataSize()

template<class DofMapperTraits >
bool Dune::Fem::DofMapper< DofMapperTraits >::fixedDataSize ( const int  codim) const
inline

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

◆ mapEach()

template<class DofMapperTraits >
template<class Functor >
void Dune::Fem::DofMapper< DofMapperTraits >::mapEach ( const ElementType element,
Functor  f 
) const
inline

map each local DoF number to a global key

Parameters
[in]elementelement, 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 &globalDoF );
};

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.

◆ mapEachEntityDof()

template<class DofMapperTraits >
template<class Entity , class Functor >
void Dune::Fem::DofMapper< DofMapperTraits >::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.

◆ maxNumDofs()

template<class DofMapperTraits >
int Dune::Fem::DofMapper< DofMapperTraits >::maxNumDofs ( ) const
inline

obtain maximal number of DoFs on one entity

◆ numDofs()

template<class DofMapperTraits >
SizeType Dune::Fem::DofMapper< DofMapperTraits >::numDofs ( const ElementType element) const
inline

obtain number of DoFs on an entity

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

◆ numEntityDofs()

template<class DofMapperTraits >
template<class Entity >
SizeType Dune::Fem::DofMapper< DofMapperTraits >::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

◆ size()

template<class DofMapperTraits >
SizeType Dune::Fem::DofMapper< DofMapperTraits >::size ( ) const
inline

return number of dofs for special function space and grid on specified level

◆ update()

template<class DofMapperTraits >
void Dune::Fem::DofMapper< DofMapperTraits >::update ( )
inline

update DoF mapping after grid modification

Note
This method may not have any semantic side effects and may may be called arbitrarily often.
If the update is expensive, implementors might choose to check the sequence number of the underlying grid part.

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