|
dune-fem 2.12-git
|
default implementation for a general operator stencil More...
#include <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< DomainGlobalKeyType > | LocalStencilType |
| type for storing the stencil of one row | |
| typedef std::vector< std::size_t >::size_type | IndexType |
| type of std::vector for indexing | |
| typedef std::conditional< indexIsSimple, std::unordered_map< RangeGlobalKeyType, LocalStencilType >, std::map< RangeGlobalKeyType, LocalStencilType > >::type | GlobalStencilType |
Public Member Functions | |
| Stencil (const DomainSpace &dSpace, const RangeSpace &rSpace) | |
| Constructor. | |
| virtual | ~Stencil () |
| const DomainSpace & | domainSpace () const |
| const RangeSpace & | rangeSpace () const |
| void | fill (const DomainEntityType &dEntity, const RangeEntityType &rEntity, bool fillGhost=true) const |
| Create stencil entries for (dEntity,rEntity) pair. | |
| const LocalStencilType & | localStencil (const RangeGlobalKeyType &key) const |
| Return stencil for a given row of the matrix. | |
| const GlobalStencilType & | globalStencil () const |
| Return the full stencil. | |
| int | maxNonZerosEstimate () const |
| Return an upper bound for the maximum number of non-zero entries in all rows. | |
| int | rows () const |
| int | cols () const |
| void | update () |
| clear previously computed entries such that a re-compute happens when used again | |
| void | setup () |
Static Public Attributes | |
| static const bool | indexIsSimple = std::is_convertible< RangeGlobalKeyType, IndexType >::value |
Protected Member Functions | |
| virtual void | setupStencil () const =0 |
| method to setup stencil depending on entity set defined in derived class | |
Protected Attributes | |
| const DomainSpace & | domainSpace_ |
| const RangeSpace & | rangeSpace_ |
| const DomainBlockMapper & | domainBlockMapper_ |
| const RangeBlockMapper & | rangeBlockMapper_ |
| GlobalStencilType | globalStencil_ |
Detailed Description
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
-
DomainSpace type of discrete function space for the domain RangeSpace type of discrete function space for the range
Member Typedef Documentation
◆ DomainEntityType
| typedef DomainIteratorType::Entity Dune::Fem::Stencil< DomainSpace, RangeSpace >::DomainEntityType |
◆ DomainGlobalKeyType
| typedef DomainBlockMapper::GlobalKeyType Dune::Fem::Stencil< DomainSpace, RangeSpace >::DomainGlobalKeyType |
◆ GlobalStencilType
| typedef std::conditional<indexIsSimple,std::unordered_map<RangeGlobalKeyType,LocalStencilType>,std::map<RangeGlobalKeyType,LocalStencilType>>::type Dune::Fem::Stencil< DomainSpace, RangeSpace >::GlobalStencilType |
◆ IndexType
| typedef std::vector<std::size_t>::size_type Dune::Fem::Stencil< DomainSpace, RangeSpace >::IndexType |
type of std::vector for indexing
◆ LocalStencilType
| typedef std::set< DomainGlobalKeyType > Dune::Fem::Stencil< DomainSpace, RangeSpace >::LocalStencilType |
type for storing the stencil of one row
◆ RangeEntityType
| typedef RangeIteratorType::Entity Dune::Fem::Stencil< DomainSpace, RangeSpace >::RangeEntityType |
◆ RangeGlobalKeyType
| typedef RangeBlockMapper::GlobalKeyType Dune::Fem::Stencil< DomainSpace, RangeSpace >::RangeGlobalKeyType |
Constructor & Destructor Documentation
◆ Stencil()
|
inline |
Constructor.
- Parameters
-
[in] dSpace domain space [in] rSpace range space
◆ ~Stencil()
|
inlinevirtual |
Member Function Documentation
◆ cols()
|
inline |
◆ domainSpace()
|
inline |
◆ fill()
|
inline |
Create stencil entries for (dEntity,rEntity) pair.
- Parameters
-
[in] dEntity domain entity [in] rEntity range entity [in] fillGhost setup stencil even for a ghost domain entity
◆ globalStencil()
|
inline |
Return the full stencil.
◆ localStencil()
|
inline |
Return stencil for a given row of the matrix.
- Parameters
-
[in] key key for matrix row
◆ maxNonZerosEstimate()
|
inline |
Return an upper bound for the maximum number of non-zero entries in all rows.
◆ rangeSpace()
|
inline |
◆ rows()
|
inline |
◆ setup()
|
inline |
◆ setupStencil()
|
protectedpure virtual |
method to setup stencil depending on entity set defined in derived class
Implemented in Dune::Fem::DiagonalStencil< DomainSpace, RangeSpace, Partition >, and Dune::Fem::DiagonalAndNeighborStencil< DomainSpace, RangeSpace, Partition >.
◆ update()
|
inline |
clear previously computed entries such that a re-compute happens when used again
Member Data Documentation
◆ domainBlockMapper_
|
protected |
◆ domainSpace_
|
protected |
◆ globalStencil_
|
mutableprotected |
◆ indexIsSimple
|
static |
◆ rangeBlockMapper_
|
protected |
◆ rangeSpace_
|
protected |
The documentation for this class was generated from the following file:
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8