dune-fem  2.4.1-rc
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::AdaptiveDofMapper< GridPart > Class Template Reference

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

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

Public Types

typedef BaseType::GridPartType GridPartType
 
typedef BaseType::SizeType SizeType
 
typedef SizeType GlobalKeyType
 
typedef GridPartType::template Codim< 0 >::EntityType ElementType
 

Public Member Functions

template<class CodeFactory >
 AdaptiveDofMapper (const GridPartType &gridPart, const CodeFactory &codeFactory)
 
 AdaptiveDofMapper (const ThisType &)=delete
 
 ~AdaptiveDofMapper ()
 
ThisTypeoperator= (const ThisType &)=delete
 
int numBlocks () const
 
SizeType offSet (int blk) const
 
SizeType oldOffSet (int blk) const
 
SizeType numberOfHoles (int blk) const
 
SizeType oldIndex (SizeType hole, int blk) const
 
SizeType newIndex (SizeType hole, int blk) const
 
bool consecutive () const
 
template<class Entity >
void insertEntity (const Entity &entity)
 
template<class Entity >
void removeEntity (const Entity &entity)
 
void resize ()
 
bool compress ()
 
template<class StreamTraits >
void write (OutStreamInterface< StreamTraits > &out) const
 
template<class StreamTraits >
void read (InStreamInterface< StreamTraits > &in)
 
void backup () const
 
void restore ()
 
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 ()
 
GlobalKeyType oldIndex (int hole, int) const
 
GlobalKeyType newIndex (int hole, int) const
 

Static Public Member Functions

static constexpr bool consecutive () noexcept
 

Protected Types

typedef BaseType::SubEntityInfo SubEntityInfo
 
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
protectedinherited
template<class GridPart>
typedef GridPartType::template Codim< 0 >::EntityType Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::ElementType
inherited
template<class GridPart>
typedef SizeType Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::GlobalKeyType
inherited
template<class GridPart>
typedef GridPartType::IndexSetType Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::IndexSetType
protectedinherited
template<class GridPart>
typedef Dune::ReferenceElements< typename GridPart::ctype, dimension > Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::RefElementsType
protectedinherited
template<class GridPart>
typedef Dune::ReferenceElement< typename GridPart::ctype, dimension > Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::RefElementType
protectedinherited
template<class GridPart>
typedef BaseType::SizeType Dune::Fem::__IndexSetDofMapper::AdaptiveDofMapper< GridPart >::SizeType
template<class GridPart>
typedef BaseType::SubEntityInfo Dune::Fem::__IndexSetDofMapper::AdaptiveDofMapper< GridPart >::SubEntityInfo
protected

Member Enumeration Documentation

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

Constructor & Destructor Documentation

template<class GridPart>
template<class CodeFactory >
Dune::Fem::__IndexSetDofMapper::AdaptiveDofMapper< GridPart >::AdaptiveDofMapper ( const GridPartType gridPart,
const CodeFactory &  codeFactory 
)
inline
template<class GridPart>
Dune::Fem::__IndexSetDofMapper::AdaptiveDofMapper< GridPart >::AdaptiveDofMapper ( const ThisType )
delete
template<class GridPart>
Dune::Fem::__IndexSetDofMapper::AdaptiveDofMapper< GridPart >::~AdaptiveDofMapper ( )
inline

Member Function Documentation

template<class GridPart>
void Dune::Fem::__IndexSetDofMapper::AdaptiveDofMapper< GridPart >::backup ( ) const
inline
template<class GridPart >
const DofMapperCode & Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::code ( const GeometryType &  gt) const
inlineprotectedinherited
template<class GridPart>
const DofMapperCode& Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::code ( const ElementType element) const
inlineprotectedinherited
template<class GridPart>
bool Dune::Fem::__IndexSetDofMapper::AdaptiveDofMapper< GridPart >::compress ( )
inline
template<class GridPart>
static constexpr bool Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::consecutive ( )
inlinestaticnoexceptinherited
template<class GridPart>
bool Dune::Fem::__IndexSetDofMapper::AdaptiveDofMapper< GridPart >::consecutive ( ) const
inline
template<class GridPart>
bool Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::contains ( int  codim) const
inlineinherited
template<class GridPart>
bool Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::fixedDataSize ( int  codim) const
inlineinherited
template<class GridPart>
const IndexSetType& Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::indexSet ( ) const
inlineprotectedinherited
template<class GridPart>
template<class Entity >
void Dune::Fem::__IndexSetDofMapper::AdaptiveDofMapper< GridPart >::insertEntity ( const Entity &  entity)
inline
template<class GridPart >
void Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::map ( const ElementType element,
std::vector< GlobalKeyType > &  indices 
) const
inlineinherited
template<class GridPart >
template<class Functor >
void Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::mapEach ( const ElementType element,
Functor  f 
) const
inlineinherited

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
inlineinherited
template<class GridPart >
template<class Entity >
void Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::mapEntityDofs ( const Entity &  entity,
std::vector< GlobalKeyType > &  indices 
) const
inlineinherited
template<class GridPart>
unsigned int Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::maxNumDofs ( ) const
inlineinherited
template<class GridPart>
GlobalKeyType Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::newIndex ( int  hole,
int   
) const
inlineinherited
template<class GridPart >
AdaptiveDofMapper< GridPart >::SizeType Dune::Fem::__IndexSetDofMapper::AdaptiveDofMapper< GridPart >::newIndex ( SizeType  hole,
int  blk 
) const
inline
template<class GridPart >
AdaptiveDofMapper< GridPart >::SizeType Dune::Fem::__IndexSetDofMapper::AdaptiveDofMapper< GridPart >::numberOfHoles ( int  blk) const
inline
template<class GridPart>
int Dune::Fem::__IndexSetDofMapper::AdaptiveDofMapper< GridPart >::numBlocks ( ) const
inline
template<class GridPart>
unsigned int Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::numDofs ( const ElementType element) const
inlineinherited
template<class GridPart >
template<class Entity >
unsigned int Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::numEntityDofs ( const Entity &  entity) const
inlineinherited
template<class GridPart >
AdaptiveDofMapper< GridPart >::SizeType Dune::Fem::__IndexSetDofMapper::AdaptiveDofMapper< GridPart >::offSet ( int  blk) const
inline
template<class GridPart>
GlobalKeyType Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::oldIndex ( int  hole,
int   
) const
inlineinherited
template<class GridPart >
AdaptiveDofMapper< GridPart >::SizeType Dune::Fem::__IndexSetDofMapper::AdaptiveDofMapper< GridPart >::oldIndex ( SizeType  hole,
int  blk 
) const
inline
template<class GridPart >
AdaptiveDofMapper< GridPart >::SizeType Dune::Fem::__IndexSetDofMapper::AdaptiveDofMapper< GridPart >::oldOffSet ( int  blk) const
inline
template<class GridPart >
void Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::onSubEntity ( const ElementType element,
int  i,
int  c,
std::vector< bool > &  indices 
) const
inlineinherited

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>
ThisType& Dune::Fem::__IndexSetDofMapper::AdaptiveDofMapper< GridPart >::operator= ( const ThisType )
delete
template<class GridPart>
template<class StreamTraits >
void Dune::Fem::__IndexSetDofMapper::AdaptiveDofMapper< GridPart >::read ( InStreamInterface< StreamTraits > &  in)
inline
template<class GridPart>
template<class Entity >
void Dune::Fem::__IndexSetDofMapper::AdaptiveDofMapper< GridPart >::removeEntity ( const Entity &  entity)
inline
template<class GridPart>
void Dune::Fem::__IndexSetDofMapper::AdaptiveDofMapper< GridPart >::resize ( )
inline
template<class GridPart>
void Dune::Fem::__IndexSetDofMapper::AdaptiveDofMapper< GridPart >::restore ( )
inline
template<class GridPart>
SizeType Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::size ( ) const
inlineinherited
template<class GridPart >
template<class Entity >
const DofMapper< GridPart >::SubEntityInfo & Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::subEntityInfo ( const Entity &  entity) const
inlineprotectedinherited
template<class GridPart >
void Dune::Fem::__IndexSetDofMapper::DofMapper< GridPart >::update ( )
inlineinherited
template<class GridPart>
template<class StreamTraits >
void Dune::Fem::__IndexSetDofMapper::AdaptiveDofMapper< GridPart >::write ( OutStreamInterface< StreamTraits > &  out) const
inline

Member Data Documentation

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

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