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

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

Inheritance diagram for Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >:
Inheritance graph

Classes

struct  BuildFunctor
 
struct  MapFunctor
 
struct  SubEntityFilter
 
struct  SubEntityFilterFunctor
 
struct  SubEntityInfo
 

Public Types

typedef std::size_t SizeType
 
typedef SizeType GlobalKeyType
 
typedef GridPart GridPartType
 
typedef GridPartType::template Codim< 0 >::EntityType ElementType
 

Public Member Functions

template<class CodeFactory >
 DofMapper (const GridPartType &gridPart, const CodeFactory &codeFactory)
 
template<class Functor >
void mapEach (const ElementType &element, Functor f) const
 map each local DoF number to a global one More...
 
void map (const ElementType &element, std::vector< GlobalKeyType > &indices) const
 
void onSubEntity (const ElementType &element, int i, int c, std::vector< bool > &indices) const
 fills a vector of bools with true indicating that the corresponding local degree of freedom is attached to the subentity specified by the (c,i) pair. A local dof is attached to a subentity S if it is attached either to that subentity or to a subentity S'<S i.e. S' has codimension greater than c which and lies within S. For example all dofs are attached to the element itself and dofs are attached to an edge also in the case where they are attached to the vertices of that edge. More...
 
unsigned int maxNumDofs () const
 
unsigned int numDofs (const ElementType &element) const
 
template<class Entity , class Functor >
void mapEachEntityDof (const Entity &entity, Functor f) const
 
template<class Entity >
void mapEntityDofs (const Entity &entity, std::vector< GlobalKeyType > &indices) const
 
template<class Entity >
unsigned int numEntityDofs (const Entity &entity) const
 
bool contains (int codim) const
 
bool fixedDataSize (int codim) const
 
SizeType size () const
 
void update ()
 
SizeType numBlocks () const
 
SizeType numberOfHoles (int) const
 
GlobalKeyType oldIndex (int hole, int) const
 
GlobalKeyType newIndex (int hole, int) const
 
SizeType oldOffSet (int) const
 
SizeType offSet (int) const
 

Static Public Member Functions

static constexpr bool consecutive () noexcept
 

Protected Types

enum  CodimType { CodimEmpty, CodimFixedSize, CodimVariableSize }
 
typedef Dune::ReferenceElement< typename GridPart::ctype, dimensionRefElementType
 
typedef Dune::ReferenceElements< typename GridPart::ctype, dimensionRefElementsType
 
typedef GridPartType::IndexSetType IndexSetType
 
typedef std::vector< GeometryType > BlockMapType
 

Protected Member Functions

const DofMapperCodecode (const GeometryType &gt) const
 
const DofMapperCodecode (const ElementType &element) const
 
template<class Entity >
const SubEntityInfosubEntityInfo (const Entity &entity) const
 
const IndexSetTypeindexSet () const
 

Protected Attributes

const GridPartTypegridPart_
 
std::vector< DofMapperCodecode_
 
unsigned int maxNumDofs_
 
SizeType size_
 
std::vector< SubEntityInfosubEntityInfo_
 
BlockMapType blockMap_
 
CodimType codimType_ [dimension+1]
 

Static Protected Attributes

static const int dimension = GridPart::dimension
 

Member Typedef Documentation

template<class GridPart>
typedef std::vector< GeometryType > Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::BlockMapType
protected
template<class GridPart>
typedef GridPartType::template Codim< 0 >::EntityType Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::ElementType
template<class GridPart>
typedef SizeType Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::GlobalKeyType
template<class GridPart>
typedef GridPart Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::GridPartType
template<class GridPart>
typedef GridPartType::IndexSetType Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::IndexSetType
protected
template<class GridPart>
typedef Dune::ReferenceElements< typename GridPart::ctype, dimension > Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::RefElementsType
protected
template<class GridPart>
typedef Dune::ReferenceElement< typename GridPart::ctype, dimension > Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::RefElementType
protected
template<class GridPart>
typedef std::size_t Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::SizeType

Member Enumeration Documentation

template<class GridPart>
enum Dune::Fem::__IndexSetDofMapper::DofMapper::CodimType
protected
Enumerator
CodimEmpty 
CodimFixedSize 
CodimVariableSize 

Constructor & Destructor Documentation

template<class GridPart >
template<class CodeFactory >
Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::DofMapper ( const GridPartType gridPart,
const CodeFactory &  codeFactory 
)
inline

Member Function Documentation

template<class GridPart >
const DofMapperCode & Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::code ( const GeometryType &  gt) const
inlineprotected
template<class GridPart>
const DofMapperCode& Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::code ( const ElementType element) const
inlineprotected
template<class GridPart>
static constexpr bool Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::consecutive ( )
inlinestaticnoexcept
template<class GridPart>
bool Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::contains ( int  codim) const
inline
template<class GridPart>
bool Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::fixedDataSize ( int  codim) const
inline
template<class GridPart>
const IndexSetType& Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::indexSet ( ) const
inlineprotected
template<class GridPart >
void Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::map ( const ElementType element,
std::vector< GlobalKeyType > &  indices 
) const
inline
template<class GridPart >
template<class Functor >
void Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::mapEach ( const ElementType element,
Functor  f 
) const
inline

map each local DoF number to a global one

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
void operator() ( int localDoF, int 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.

References Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::code(), Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::gridPart_, Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::map(), and Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::subEntityInfo_.

Referenced by Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::DofMapper(), and Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::map().

template<class GridPart >
template<class Entity , class Functor >
void Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::mapEachEntityDof ( const Entity &  entity,
Functor  f 
) const
inline
template<class GridPart >
template<class Entity >
void Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::mapEntityDofs ( const Entity &  entity,
std::vector< GlobalKeyType > &  indices 
) const
inline
template<class GridPart>
unsigned int Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::maxNumDofs ( ) const
inline
template<class GridPart>
GlobalKeyType Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::newIndex ( int  hole,
int   
) const
inline
template<class GridPart>
SizeType Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::numberOfHoles ( int  ) const
inline
template<class GridPart>
SizeType Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::numBlocks ( ) const
inline
template<class GridPart>
unsigned int Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::numDofs ( const ElementType element) const
inline
template<class GridPart >
template<class Entity >
unsigned int Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::numEntityDofs ( const Entity &  entity) const
inline
template<class GridPart>
SizeType Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::offSet ( int  ) const
inline
template<class GridPart>
GlobalKeyType Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::oldIndex ( int  hole,
int   
) const
inline
template<class GridPart>
SizeType Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::oldOffSet ( int  ) const
inline
template<class GridPart >
void Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::onSubEntity ( const ElementType element,
int  i,
int  c,
std::vector< bool > &  indices 
) const
inline

fills a vector of bools with true indicating that the corresponding local degree of freedom is attached to the subentity specified by the (c,i) pair. A local dof is attached to a subentity S if it is attached either to that subentity or to a subentity S'<S i.e. S' has codimension greater than c which and lies within S. For example all dofs are attached to the element itself and dofs are attached to an edge also in the case where they are attached to the vertices of that edge.

References Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::code(), Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::gridPart_, Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::numEntityDofs(), and Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::subEntityInfo_.

Referenced by Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::mapEntityDofs().

template<class GridPart>
SizeType Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::size ( ) const
inline
template<class GridPart >
template<class Entity >
const DofMapper< GridPart >::SubEntityInfo & Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::subEntityInfo ( const Entity &  entity) const
inlineprotected
template<class GridPart >
void Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::update ( )
inline

Member Data Documentation

template<class GridPart>
BlockMapType Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::blockMap_
protected
template<class GridPart>
std::vector< DofMapperCode > Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::code_
protected
template<class GridPart>
CodimType Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::codimType_[dimension+1]
protected
template<class GridPart>
const int Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::dimension = GridPart::dimension
staticprotected
template<class GridPart>
const GridPartType& Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::gridPart_
protected
template<class GridPart>
unsigned int Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::maxNumDofs_
protected
template<class GridPart>
SizeType Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::size_
protected
template<class GridPart>
std::vector< SubEntityInfo > Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::subEntityInfo_
protected

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