dune-fem
2.4.1-rc
|
default implementation for a general operator stencil More...
#include </local/tomalk/somewhere/tmp/dune-fem/dune/fem/operator/common/stencil.hh>
Public Types | |
typedef DomainIteratorType::Entity | DomainEntityType |
typedef RangeIteratorType::Entity | RangeEntityType |
typedef DomainBlockMapper::GlobalKeyType | DomainGlobalKeyType |
typedef RangeBlockMapper::GlobalKeyType | RangeGlobalKeyType |
typedef std::set< RangeGlobalKeyType > | LocalStencilType |
type for storing the stencil of one row More... | |
typedef std::map< DomainGlobalKeyType, LocalStencilType > | GlobalStencilType |
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 LocalStencilType & | localStencil (const DomainGlobalKeyType &key) const |
Return stencil for a given row of the matrix. More... | |
const GlobalStencilType & | globalStencil () 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... | |
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 locslMatrix method is called during the assembly.
DomainSpace | type of discrete function space for the domain |
RangeSpace | type of discrete function space for the range |
typedef DomainIteratorType::Entity Dune::Fem::Stencil< DomainSpace, RangeSpace >::DomainEntityType |
typedef DomainBlockMapper::GlobalKeyType Dune::Fem::Stencil< DomainSpace, RangeSpace >::DomainGlobalKeyType |
typedef std::map<DomainGlobalKeyType,LocalStencilType> Dune::Fem::Stencil< DomainSpace, RangeSpace >::GlobalStencilType |
type for storing the full stencil
typedef std::set<RangeGlobalKeyType> Dune::Fem::Stencil< DomainSpace, RangeSpace >::LocalStencilType |
type for storing the stencil of one row
typedef RangeIteratorType::Entity Dune::Fem::Stencil< DomainSpace, RangeSpace >::RangeEntityType |
typedef RangeBlockMapper::GlobalKeyType Dune::Fem::Stencil< DomainSpace, RangeSpace >::RangeGlobalKeyType |
|
inline |
Constructor.
[in] | dSpace | domain space |
[in] | rSpace | range space |
|
inline |
Create stencil entries for (dEntity,rEntity) pair.
[in] | dEntity | domain entity |
[in] | rEntity | range entity |
[in] | fillGhost | setup stencil even for a ghost domain entity |
Referenced by Dune::Fem::Stencil< DomainSpace, RangeSpace >::maxNonZerosEstimate().
|
inline |
Return the full stencil.
Referenced by Dune::Fem::Stencil< DomainSpace, RangeSpace >::maxNonZerosEstimate().
|
inline |
Return stencil for a given row of the matrix.
[in] | key | key for matrix row |
|
inline |
Return an upper bound for the maximum number of non-zero entries in all row.
References Dune::Fem::Stencil< DomainSpace, RangeSpace >::fill(), Dune::Fem::Stencil< DomainSpace, RangeSpace >::globalStencil(), and Dune::Std::max().
Referenced by Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType, RangeFunction::DiscreteFunctionSpaceType >::reserve().