dune-fem 2.8.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
Dune::Fem::DiagonalAndNeighborStencil< DomainSpace, RangeSpace, Partition > Class Template Reference

Stencil contaning the entries (en,en) and (en,nb) for all entities en in the space and neighbors nb of en. Defailt for an operator over a DG space. More...

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

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

Public Types

typedef Stencil< DomainSpace, RangeSpace > BaseType
 
typedef Partition PartitionType
 
typedef BaseType::DomainEntityType DomainEntityType
 
typedef BaseType::RangeEntityType RangeEntityType
 
typedef BaseType::DomainGlobalKeyType DomainGlobalKeyType
 
typedef BaseType::RangeGlobalKeyType RangeGlobalKeyType
 
typedef BaseType::LocalStencilType LocalStencilType
 
typedef BaseType::GlobalStencilType GlobalStencilType
 
typedef std::vector< std::size_t >::size_type IndexType
 type of std::vector for indexing
 

Public Member Functions

 DiagonalAndNeighborStencil (const DomainSpace &dSpace, const RangeSpace &rSpace, bool onlyNonContinuousNeighbors=false)
 
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 LocalStencilTypelocalStencil (const RangeGlobalKeyType &key) const
 Return stencil for a given row of the matrix.
 
const GlobalStencilTypeglobalStencil () 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 override
 method to setup stencil depending on entity set defined in derived class
 

Protected Attributes

bool onlyNonContinuousNeighbors_
 
const DomainSpace & domainSpace_
 
const RangeSpace & rangeSpace_
 
const DomainBlockMapper & domainBlockMapper_
 
const RangeBlockMapper & rangeBlockMapper_
 
GlobalStencilType globalStencil_
 

Detailed Description

template<class DomainSpace, class RangeSpace, class Partition = Dune::Partitions::InteriorBorder>
class Dune::Fem::DiagonalAndNeighborStencil< DomainSpace, RangeSpace, Partition >

Stencil contaning the entries (en,en) and (en,nb) for all entities en in the space and neighbors nb of en. Defailt for an operator over a DG space.

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

Member Typedef Documentation

◆ BaseType

template<class DomainSpace , class RangeSpace , class Partition = Dune::Partitions::InteriorBorder>
typedef Stencil<DomainSpace,RangeSpace> Dune::Fem::DiagonalAndNeighborStencil< DomainSpace, RangeSpace, Partition >::BaseType

◆ DomainEntityType

template<class DomainSpace , class RangeSpace , class Partition = Dune::Partitions::InteriorBorder>
typedef BaseType::DomainEntityType Dune::Fem::DiagonalAndNeighborStencil< DomainSpace, RangeSpace, Partition >::DomainEntityType

◆ DomainGlobalKeyType

template<class DomainSpace , class RangeSpace , class Partition = Dune::Partitions::InteriorBorder>
typedef BaseType::DomainGlobalKeyType Dune::Fem::DiagonalAndNeighborStencil< DomainSpace, RangeSpace, Partition >::DomainGlobalKeyType

◆ GlobalStencilType

template<class DomainSpace , class RangeSpace , class Partition = Dune::Partitions::InteriorBorder>
typedef BaseType::GlobalStencilType Dune::Fem::DiagonalAndNeighborStencil< DomainSpace, RangeSpace, Partition >::GlobalStencilType

◆ IndexType

template<class DomainSpace , class RangeSpace >
typedef std::vector<std::size_t>::size_type Dune::Fem::Stencil< DomainSpace, RangeSpace >::IndexType
inherited

type of std::vector for indexing

◆ LocalStencilType

template<class DomainSpace , class RangeSpace , class Partition = Dune::Partitions::InteriorBorder>
typedef BaseType::LocalStencilType Dune::Fem::DiagonalAndNeighborStencil< DomainSpace, RangeSpace, Partition >::LocalStencilType

◆ PartitionType

template<class DomainSpace , class RangeSpace , class Partition = Dune::Partitions::InteriorBorder>
typedef Partition Dune::Fem::DiagonalAndNeighborStencil< DomainSpace, RangeSpace, Partition >::PartitionType

◆ RangeEntityType

template<class DomainSpace , class RangeSpace , class Partition = Dune::Partitions::InteriorBorder>
typedef BaseType::RangeEntityType Dune::Fem::DiagonalAndNeighborStencil< DomainSpace, RangeSpace, Partition >::RangeEntityType

◆ RangeGlobalKeyType

template<class DomainSpace , class RangeSpace , class Partition = Dune::Partitions::InteriorBorder>
typedef BaseType::RangeGlobalKeyType Dune::Fem::DiagonalAndNeighborStencil< DomainSpace, RangeSpace, Partition >::RangeGlobalKeyType

Constructor & Destructor Documentation

◆ DiagonalAndNeighborStencil()

template<class DomainSpace , class RangeSpace , class Partition = Dune::Partitions::InteriorBorder>
Dune::Fem::DiagonalAndNeighborStencil< DomainSpace, RangeSpace, Partition >::DiagonalAndNeighborStencil ( const DomainSpace &  dSpace,
const RangeSpace &  rSpace,
bool  onlyNonContinuousNeighbors = false 
)
inline

Member Function Documentation

◆ cols()

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

◆ domainSpace()

template<class DomainSpace , class RangeSpace >
const DomainSpace & Dune::Fem::Stencil< DomainSpace, RangeSpace >::domainSpace ( ) const
inlineinherited

◆ fill()

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

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
inlineinherited

Return the full stencil.

◆ localStencil()

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

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
inlineinherited

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

◆ rangeSpace()

template<class DomainSpace , class RangeSpace >
const RangeSpace & Dune::Fem::Stencil< DomainSpace, RangeSpace >::rangeSpace ( ) const
inlineinherited

◆ rows()

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

◆ setup()

template<class DomainSpace , class RangeSpace >
void Dune::Fem::Stencil< DomainSpace, RangeSpace >::setup ( )
inlineinherited

◆ setupStencil()

template<class DomainSpace , class RangeSpace , class Partition = Dune::Partitions::InteriorBorder>
virtual void Dune::Fem::DiagonalAndNeighborStencil< DomainSpace, RangeSpace, Partition >::setupStencil ( ) const
inlineoverrideprotectedvirtual

method to setup stencil depending on entity set defined in derived class

Implements Dune::Fem::Stencil< DomainSpace, RangeSpace >.

◆ update()

template<class DomainSpace , class RangeSpace >
void Dune::Fem::Stencil< DomainSpace, RangeSpace >::update ( )
inlineinherited

clear previously computed entries such that a re-compute happens when used again

Member Data Documentation

◆ domainBlockMapper_

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

◆ domainSpace_

template<class DomainSpace , class RangeSpace >
const DomainSpace& Dune::Fem::Stencil< DomainSpace, RangeSpace >::domainSpace_
protectedinherited

◆ globalStencil_

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

◆ indexIsSimple

template<class DomainSpace , class RangeSpace >
const bool Dune::Fem::Stencil< DomainSpace, RangeSpace >::indexIsSimple = std::is_convertible< RangeGlobalKeyType, IndexType >::value
staticinherited

◆ onlyNonContinuousNeighbors_

template<class DomainSpace , class RangeSpace , class Partition = Dune::Partitions::InteriorBorder>
bool Dune::Fem::DiagonalAndNeighborStencil< DomainSpace, RangeSpace, Partition >::onlyNonContinuousNeighbors_
protected

◆ rangeBlockMapper_

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

◆ rangeSpace_

template<class DomainSpace , class RangeSpace >
const RangeSpace& Dune::Fem::Stencil< DomainSpace, RangeSpace >::rangeSpace_
protectedinherited

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