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

#include <dune/fem/space/common/dofmanager.hh>

Inheritance diagram for Dune::Fem::DofManager< Grid >:
Inheritance graph

Public Types

typedef Grid GridType
 type of Grid this DofManager belongs to
 
typedef GridObjectStreamTraits< GridType >::InStreamType XtractStreamImplType
 
typedef GridObjectStreamTraits< GridType >::OutStreamType InlineStreamImplType
 
typedef MessageBufferIF< XtractStreamImplTypeXtractStreamType
 
typedef MessageBufferIF< InlineStreamImplTypeInlineStreamType
 
typedef DataCollectorInterface< GridType, XtractStreamTypeDataXtractorType
 
typedef DataCollectorInterface< GridType, InlineStreamTypeDataInlinerType
 
typedef GridType::template Codim< 0 >::Entity ElementType
 
typedef IndexSetRestrictProlong< ThisType, LocalIndexSetObjectsType, true > NewIndexSetRestrictProlongType
 
typedef IndexSetRestrictProlong< ThisType, LocalIndexSetObjectsType, false > IndexSetRestrictProlongNoResizeType
 
typedef EmptyIndexSetRestrictProlong IndexSetRestrictProlongType
 

Public Member Functions

 DofManager (const ThisType &)=delete
 
double memoryFactor () const
 return factor to over estimate new memory allocation
 
template<class IndexSetType >
void addIndexSet (const IndexSetType &iset)
 add index set to dof manager's list of index sets
 
template<class IndexSetType >
void removeIndexSet (const IndexSetType &iset)
 removed index set from dof manager's list of index sets
 
template<class ManagedDofStorageImp >
void addDofStorage (ManagedDofStorageImp &dofStorage)
 add a managed dof storage to the dof manager.
 
template<class ManagedDofStorageImp >
void removeDofStorage (ManagedDofStorageImp &dofStorage)
 remove a managed dof storage from the dof manager.
 
NewIndexSetRestrictProlongTypeindexSetRestrictProlong ()
 returns the index set restriction and prolongation operator
 
IndexSetRestrictProlongNoResizeTypeindexSetRestrictProlongNoResize ()
 returns the index set restriction and prolongation operator
 
bool hasIndexSets () const
 if dofmanagers list is not empty return true
 
size_t usedMemorySize () const
 return used memory size of all MemObjects in bytes.
 
void resizeForRestrict ()
 resize memory before data restriction during grid adaptation is done.
 
void reserveMemory (int nsize, bool dummy=false)
 reserve memory for at least nsize elements, dummy is needed for dune-grid ALUGrid version
 
int sequence () const
 return number of sequence, if dofmanagers memory was changed by calling some method like resize, then also this number will increase
 
void resize ()
 Resize index sets and memory due to what the mapper has as new size.
 
void insertEntity (ConstElementType &element)
 Inserts entity to all index sets added to dof manager.
 
void removeEntity (ConstElementType &element)
 Removes entity from all index sets added to dof manager.
 
void resizeMemory ()
 resize the MemObject if necessary
 
void enlargeMemory ()
 resize the MemObject if necessary
 
void incrementSequenceNumber ()
 increase the DofManagers internal sequence number
 
void compress ()
 Compress all data that is hold by this dofmanager.
 
bool notifyGlobalChange (const bool wasChanged) const
 communicate new sequence number
 
template<class DataCollType >
void addDataInliner (DataCollType &d)
 add data handler for data inlining to dof manager
 
void clearDataInliners ()
 clear data inliner list
 
template<class DataCollType >
void addDataXtractor (DataCollType &d)
 add data handler for data xtracting to dof manager
 
void clearDataXtractors ()
 clear data xtractor list
 
bool contains (const int dim, const int codim) const
 the dof manager only transfers element data during load balancing
 
bool fixedSize (const int dim, const int codim) const
 fixed size is false
 
template<class Entity >
size_t size (const Entity &) const
 for convenience
 
void gather (InlineStreamType &str, ConstElementType &element) const
 packs all data attached to this entity
 
template<class MessageBuffer , class Entity >
void gather (MessageBuffer &str, const Entity &entity) const
 
void scatter (XtractStreamType &str, ConstElementType &element, size_t)
 unpacks all data attached of this entity from message buffer
 
template<class MessageBuffer , class Entity >
void scatter (MessageBuffer &str, const Entity &entity, size_t)
 unpacks all data of this entity from message buffer
 
void backup () const
 :: backup
 
void restore ()
 :: restore
 
template<class OutStream >
void write (OutStream &out) const
 write all index sets to a given stream
 
template<class InStream >
void read (InStream &in)
 read all index sets from a given stream
 

Static Public Member Functions

static ThisTypeinstance (const GridType &grid)
 obtain a reference to the DofManager for a given grid
 

Detailed Description

template<class Grid>
class Dune::Fem::DofManager< Grid >

The DofManager is responsible for managing memory allocation and freeing for all discrete functions living on the grid the manager belongs to. There is only one DofManager per grid. Each discrete function knows its dofmanager and can sign in. If the grid is adapted, then the dofmanager reorganizes the memory if necessary. The DofManager holds a list of MemObjects which manage the memory and the corresponding mapper so they can determine the size of new memory. Furthermore the DofManager holds an IndexSet which the DofMapper needs for calculating the indices in the dof vector for a given entity and local dof number. This IndexSet is delivered to the mapper when a function space is created. The default value for the IndexSet is the DefaultIndexSet class which is mostly a wrapper for the grid indices.


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