dune-fem 2.8.0
Loading...
Searching...
No Matches
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
Dune::Fem::ISTLBlockVectorDiscreteFunction< DiscreteFunctionSpace, Block >::ISTLDofStorage Class Reference

#include <dune/fem/function/blockvectorfunction/blockvectorfunction.hh>

Inheritance diagram for Dune::Fem::ISTLBlockVectorDiscreteFunction< DiscreteFunctionSpace, Block >::ISTLDofStorage:
Inheritance graph

Public Member Functions

 ISTLDofStorage (const GridType &grid, const BlockMapperType &mapper, DofContainerType *otherData=nullptr)
 Constructor of ManagedDofStorage.
 
ResizeMemoryObjectTyperesizeMemoryObject ()
 return object that calls resize of this memory object
 
ReserveMemoryObjectTypereserveMemoryObject ()
 return object that calls reserve of this memory object
 
int size () const
 return size of underlying array
 
void resize (const bool enlargeOnly)
 resize the memory with the new size
 
void reserve (const int needed)
 reserve memory for what is comming
 
void dofCompress (const bool clearResizedArrays)
 copy the dof from the rear section of the vector to the holes
 
size_t usedMemorySize () const
 return used memory size
 
void enableDofCompression ()
 enable dof compression for this MemObject
 
DofVectorTypegetArray ()
 return reference to array for DiscreteFunction
 

Protected Types

typedef ManagedDofStorageImplementation< GridType, BlockMapperType, DofVectorTypeThisType
 
typedef DofManager< GridTypeDofManagerType
 
typedef ResizeMemoryObjects< ThisTypeResizeMemoryObjectType
 
typedef ReserveMemoryObjects< ThisTypeReserveMemoryObjectType
 

Protected Member Functions

DofContainerTypecreateData (const size_t size, DofContainerType *otherData)
 
void resize (std::false_type, const bool enlargeOnly)
 
void resize (std::true_type, const bool enlargeOnly)
 
BlockMapperTypemapper () const
 
void resizeAndMoveToRear ()
 
void moveToFront (const int oldSize, const int block)
 move block to front again
 

Protected Attributes

std::unique_ptr< DofContainerTypemyDofContainer_
 
DofVectorType myArray_
 
DofManagerTypedm_
 
BlockMapperTypemapper_
 
DofVectorTypearray_
 
ResizeMemoryObjectType resizeMemObj_
 
ReserveMemoryObjectType reserveMemObj_
 
bool dataCompressionEnabled_
 

Detailed Description

template<class DiscreteFunctionSpace, class Block>
class Dune::Fem::ISTLBlockVectorDiscreteFunction< DiscreteFunctionSpace, Block >::ISTLDofStorage

A ISTLDofStorage holds the memory for one DiscreteFunction.

Member Typedef Documentation

◆ DofManagerType

◆ ReserveMemoryObjectType

◆ ResizeMemoryObjectType

◆ ThisType

Constructor & Destructor Documentation

◆ ISTLDofStorage()

template<class DiscreteFunctionSpace , class Block >
Dune::Fem::ISTLBlockVectorDiscreteFunction< DiscreteFunctionSpace, Block >::ISTLDofStorage::ISTLDofStorage ( const GridType grid,
const BlockMapperType mapper,
DofContainerType otherData = nullptr 
)
inline

Constructor of ManagedDofStorage.

Member Function Documentation

◆ createData()

template<class DiscreteFunctionSpace , class Block >
DofContainerType * Dune::Fem::ISTLBlockVectorDiscreteFunction< DiscreteFunctionSpace, Block >::ISTLDofStorage::createData ( const size_t  size,
DofContainerType otherData 
)
inlineprotected

◆ dofCompress()

void Dune::Fem::ManagedDofStorageImplementation< GridType , BlockMapperType , DofVectorType >::dofCompress ( const bool  clearResizedArrays)
inlinevirtualinherited

copy the dof from the rear section of the vector to the holes

Implements Dune::Fem::ManagedDofStorageInterface.

◆ enableDofCompression()

void Dune::Fem::ManagedDofStorageImplementation< GridType , BlockMapperType , DofVectorType >::enableDofCompression ( )
inlinevirtualinherited

enable dof compression for this MemObject

Reimplemented from Dune::Fem::DofStorageInterface.

◆ getArray()

return reference to array for DiscreteFunction

◆ mapper()

◆ moveToFront()

void Dune::Fem::ManagedDofStorageImplementation< GridType , BlockMapperType , DofVectorType >::moveToFront ( const int  oldSize,
const int  block 
)
inlineprotectedinherited

move block to front again

◆ reserve()

void Dune::Fem::ManagedDofStorageImplementation< GridType , BlockMapperType , DofVectorType >::reserve ( const int  needed)
inlinevirtualinherited

reserve memory for what is comming

Implements Dune::Fem::ManagedDofStorageInterface.

◆ reserveMemoryObject()

return object that calls reserve of this memory object

◆ resize() [1/3]

void Dune::Fem::ManagedDofStorageImplementation< GridType , BlockMapperType , DofVectorType >::resize ( const bool  enlargeOnly)
inlinevirtualinherited

resize the memory with the new size

Implements Dune::Fem::ManagedDofStorageInterface.

◆ resize() [2/3]

void Dune::Fem::ManagedDofStorageImplementation< GridType , BlockMapperType , DofVectorType >::resize ( std::false_type  ,
const bool  enlargeOnly 
)
inlineprotectedinherited

◆ resize() [3/3]

void Dune::Fem::ManagedDofStorageImplementation< GridType , BlockMapperType , DofVectorType >::resize ( std::true_type  ,
const bool  enlargeOnly 
)
inlineprotectedinherited

◆ resizeAndMoveToRear()

void Dune::Fem::ManagedDofStorageImplementation< GridType , BlockMapperType , DofVectorType >::resizeAndMoveToRear ( )
inlineprotectedinherited

◆ resizeMemoryObject()

return object that calls resize of this memory object

◆ size()

int Dune::Fem::ManagedDofStorageImplementation< GridType , BlockMapperType , DofVectorType >::size ( ) const
inlinevirtualinherited

return size of underlying array

Implements Dune::Fem::DofStorageInterface.

◆ usedMemorySize()

size_t Dune::Fem::ManagedDofStorageImplementation< GridType , BlockMapperType , DofVectorType >::usedMemorySize ( ) const
inlinevirtualinherited

return used memory size

Implements Dune::Fem::ManagedDofStorageInterface.

Member Data Documentation

◆ array_

◆ dataCompressionEnabled_

bool Dune::Fem::ManagedDofStorageImplementation< GridType , BlockMapperType , DofVectorType >::dataCompressionEnabled_
protectedinherited

◆ dm_

◆ mapper_

◆ myArray_

template<class DiscreteFunctionSpace , class Block >
DofVectorType Dune::Fem::ISTLBlockVectorDiscreteFunction< DiscreteFunctionSpace, Block >::ISTLDofStorage::myArray_
protected

◆ myDofContainer_

template<class DiscreteFunctionSpace , class Block >
std::unique_ptr< DofContainerType > Dune::Fem::ISTLBlockVectorDiscreteFunction< DiscreteFunctionSpace, Block >::ISTLDofStorage::myDofContainer_
protected

◆ reserveMemObj_

◆ resizeMemObj_


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