DUNE-FEM (unstable)

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>

Public Types

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
 

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 More...
 
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 More...
 
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
 
SizeType numDofs (const ElementType &element) const
 obtain number of DoFs on an entity More...
 
template<class Entity >
SizeType numEntityDofs (const Entity &entity) const
 obtain number of DoFs actually belonging to an entity More...
 
void update ()
 update DoF mapping after grid modification More...
 

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 Function Documentation

◆ 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

◆ 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.

References CHECK_AND_CALL_INTERFACE_IMPLEMENTATION, and Dune::Fem::DofMapper< DofMapperTraits >::mapEach().

Referenced by Dune::Fem::DofMapper< DofMapperTraits >::mapEach().

◆ 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.

References CHECK_AND_CALL_INTERFACE_IMPLEMENTATION, and Dune::Fem::DofMapper< DofMapperTraits >::mapEachEntityDof().

Referenced by Dune::Fem::DofMapper< DofMapperTraits >::mapEachEntityDof().

◆ 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

◆ 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.

References CHECK_AND_CALL_INTERFACE_IMPLEMENTATION, and Dune::Fem::DofMapper< DofMapperTraits >::update().

Referenced by Dune::Fem::DofMapper< DofMapperTraits >::update().


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 (Nov 20, 23:30, 2024)