dune-fem 2.8-git
Classes | Public Types | Public Member Functions | Protected Attributes | List of all members
Dune::Fem::Stencil< DomainSpace, RangeSpace > Class Template Reference

default implementation for a general operator stencil More...

#include <dune/fem/operator/common/stencil.hh>

Inheritance diagram for Dune::Fem::Stencil< DomainSpace, RangeSpace >:
Inheritance graph

Public Types

typedef DomainIteratorType::Entity DomainEntityType
 
typedef RangeIteratorType::Entity RangeEntityType
 
typedef DomainBlockMapper::GlobalKeyType DomainGlobalKeyType
 
typedef RangeBlockMapper::GlobalKeyType RangeGlobalKeyType
 
typedef std::set< DomainGlobalKeyTypeLocalStencilType
 type for storing the stencil of one row More...
 
typedef std::map< RangeGlobalKeyType, LocalStencilTypeGlobalStencilType
 type for storing the full stencil More...
 

Public Member Functions

 Stencil (const DomainSpace &dSpace, const RangeSpace &rSpace)
 Constructor. More...
 
void fill (const DomainEntityType &dEntity, const RangeEntityType &rEntity, bool fillGhost=true)
 Create stencil entries for (dEntity,rEntity) pair. More...
 
const LocalStencilTypelocalStencil (const RangeGlobalKeyType &key) const
 Return stencil for a given row of the matrix. More...
 
const GlobalStencilTypeglobalStencil () const
 Return the full stencil. More...
 
int maxNonZerosEstimate () const
 Return an upper bound for the maximum number of non-zero entries in all row. More...
 
int rows () const
 
int cols () const
 

Protected Attributes

const DomainBlockMapper & domainBlockMapper_
 
const RangeBlockMapper & rangeBlockMapper_
 
GlobalStencilType globalStencil_
 

Detailed Description

template<class DomainSpace, class RangeSpace>
class Dune::Fem::Stencil< DomainSpace, RangeSpace >

default implementation for a general operator stencil

To assemble a matrix from an operator the method reserve has to be called on the linear operator class passing a stencil object as parameter. To setup a full stencil the method fill has to be called with each pair (en,nb) for which the localMatrix method is called during the assembly.

Template Parameters
DomainSpacetype of discrete function space for the domain
RangeSpacetype of discrete function space for the range

Member Typedef Documentation

◆ DomainEntityType

template<class DomainSpace , class RangeSpace >
typedef DomainIteratorType::Entity Dune::Fem::Stencil< DomainSpace, RangeSpace >::DomainEntityType

◆ DomainGlobalKeyType

template<class DomainSpace , class RangeSpace >
typedef DomainBlockMapper::GlobalKeyType Dune::Fem::Stencil< DomainSpace, RangeSpace >::DomainGlobalKeyType

◆ GlobalStencilType

template<class DomainSpace , class RangeSpace >
typedef std::map<RangeGlobalKeyType,LocalStencilType> Dune::Fem::Stencil< DomainSpace, RangeSpace >::GlobalStencilType

type for storing the full stencil

◆ LocalStencilType

template<class DomainSpace , class RangeSpace >
typedef std::set<DomainGlobalKeyType> Dune::Fem::Stencil< DomainSpace, RangeSpace >::LocalStencilType

type for storing the stencil of one row

◆ RangeEntityType

template<class DomainSpace , class RangeSpace >
typedef RangeIteratorType::Entity Dune::Fem::Stencil< DomainSpace, RangeSpace >::RangeEntityType

◆ RangeGlobalKeyType

template<class DomainSpace , class RangeSpace >
typedef RangeBlockMapper::GlobalKeyType Dune::Fem::Stencil< DomainSpace, RangeSpace >::RangeGlobalKeyType

Constructor & Destructor Documentation

◆ Stencil()

template<class DomainSpace , class RangeSpace >
Dune::Fem::Stencil< DomainSpace, RangeSpace >::Stencil ( const DomainSpace &  dSpace,
const RangeSpace &  rSpace 
)
inline

Constructor.

Parameters
[in]dSpacedomain space
[in]rSpacerange space

Member Function Documentation

◆ cols()

template<class DomainSpace , class RangeSpace >
int Dune::Fem::Stencil< DomainSpace, RangeSpace >::cols ( ) const
inline

◆ fill()

template<class DomainSpace , class RangeSpace >
void Dune::Fem::Stencil< DomainSpace, RangeSpace >::fill ( const DomainEntityType dEntity,
const RangeEntityType rEntity,
bool  fillGhost = true 
)
inline

Create stencil entries for (dEntity,rEntity) pair.

Parameters
[in]dEntitydomain entity
[in]rEntityrange entity
[in]fillGhostsetup stencil even for a ghost domain entity

◆ globalStencil()

template<class DomainSpace , class RangeSpace >
const GlobalStencilType & Dune::Fem::Stencil< DomainSpace, RangeSpace >::globalStencil ( ) const
inline

Return the full stencil.

◆ localStencil()

template<class DomainSpace , class RangeSpace >
const LocalStencilType & Dune::Fem::Stencil< DomainSpace, RangeSpace >::localStencil ( const RangeGlobalKeyType key) const
inline

Return stencil for a given row of the matrix.

Parameters
[in]keykey for matrix row

◆ maxNonZerosEstimate()

template<class DomainSpace , class RangeSpace >
int Dune::Fem::Stencil< DomainSpace, RangeSpace >::maxNonZerosEstimate ( ) const
inline

Return an upper bound for the maximum number of non-zero entries in all row.

◆ rows()

template<class DomainSpace , class RangeSpace >
int Dune::Fem::Stencil< DomainSpace, RangeSpace >::rows ( ) const
inline

Member Data Documentation

◆ domainBlockMapper_

template<class DomainSpace , class RangeSpace >
const DomainBlockMapper& Dune::Fem::Stencil< DomainSpace, RangeSpace >::domainBlockMapper_
protected

◆ globalStencil_

template<class DomainSpace , class RangeSpace >
GlobalStencilType Dune::Fem::Stencil< DomainSpace, RangeSpace >::globalStencil_
protected

◆ rangeBlockMapper_

template<class DomainSpace , class RangeSpace >
const RangeBlockMapper& Dune::Fem::Stencil< DomainSpace, RangeSpace >::rangeBlockMapper_
protected

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