DUNE-FEM (unstable)

Dune::Fem::ManagedDofStorageImplementation< GridImp, MapperType, DofArrayType > Class Template Reference

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

Public Member Functions

ResizeMemoryObjectType & resizeMemoryObject ()
 return object that calls resize of this memory object
 
ReserveMemoryObjectType & reserveMemoryObject ()
 return object that calls reserve of this memory object
 
SizeType size () const override
 return size of underlying array
 
void resize (const bool enlargeOnly) override
 resize the memory with the new size
 
void reserve (const SizeType needed) override
 reserve memory for what is coming
 
void dofCompress (const bool clearResizedArrays) override
 copy the dof from the rear section of the vector to the holes
 
size_t usedMemorySize () const override
 return used memory size
 
void enableDofCompression () override
 enable dof compression for this MemObject
 
DofArrayType & getArray ()
 return reference to array for DiscreteFunction
 

Protected Member Functions

 ManagedDofStorageImplementation (const GridImp &grid, const MapperType &mapper, DofArrayType &array)
 Constructor of ManagedDofStorageImplementation, only to call from derived classes.
 
 ~ManagedDofStorageImplementation ()
 destructor deleting MemObject from resize and reserve List
 
void moveToFront (const SizeType oldSize, const int block)
 move block to front again
 

Detailed Description

template<class GridImp, class MapperType, class DofArrayType>
class Dune::Fem::ManagedDofStorageImplementation< GridImp, MapperType, DofArrayType >

A ManagedDofStorage holds the memory for one DiscreteFunction and the corresponding DofArrayMemory. ManagedDofStorageImplementation implements the basic features such as resize and dof compression. If a DiscreteFunction is signed in by a function space, then such a MemObject is created by the DofManager. The MemObject also knows the DofMapper from the function space which the discrete function belongs to. Here we dont know the exact type of the dof mapper therefore the methods newSize and calcInsertPoints of the mappers have to be virtual. This isnt a problem because this methods should only be called during memory reorganizing which is only once per timestep.


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.80.0 (May 16, 22:29, 2024)