dune-functions 2.10
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
Dune::Functions::DynamicPowerPreBasis< IMS, SPB > Class Template Reference

A pre-basis for dynamic power bases. More...

#include <dune/functions/functionspacebases/dynamicpowerbasis.hh>

Inheritance diagram for Dune::Functions::DynamicPowerPreBasis< IMS, SPB >:
Inheritance graph

Public Types

using SubPreBasis = SPB
 The child pre-basis.
 
using GridView = typename SPB::GridView
 The grid view that the FE basis is defined on.
 
using size_type = std::size_t
 Type used for indices and size information.
 
using IndexMergingStrategy = IMS
 Strategy used to merge the global indices of the child factories.
 
using Node = DynamicPowerBasisNode< typename SubPreBasis::Node >
 Template mapping root tree path to type of created tree node.
 

Public Member Functions

template<class... SFArgs, disableCopyMove< DynamicPowerPreBasis, SFArgs... > = 0, enableIfConstructible< SubPreBasis, SFArgs... > = 0>
 DynamicPowerPreBasis (std::size_t c, SFArgs &&... sfArgs)
 Constructor for given child pre-basis objects.
 
void initializeIndices ()
 Initialize the global indices.
 
const GridViewgridView () const
 Obtain the grid view that the basis is defined on.
 
void update (const GridView &gv)
 Update the stored grid view, to be called if the grid has changed.
 
Node makeNode () const
 Create tree node.
 
std::size_t children () const
 
size_type size () const
 Same as size(prefix) with empty prefix.
 
template<class SizePrefix >
size_type size (const SizePrefix &prefix) const
 Return number of possible values for next position in multi index.
 
size_type dimension () const
 Get the total dimension of the space spanned by this basis.
 
size_type maxNodeSize () const
 Get the maximal number of DOFs associated to node for any element.
 
const SubPreBasissubPreBasis () const
 Const access to the stored prebasis of the factor in the power space.
 
SubPreBasissubPreBasis ()
 Mutable access to the stored prebasis of the factor in the power space.
 
template<class NodeType , typename It , std::enable_if_t< NodeType::isPower, int > = 0>
It indices (const NodeType &node, It it) const
 Maps from subtree index set [0..size-1] to a globally unique multi index in global basis.
 
auto containerDescriptor () const
 Return the associated container descriptor.
 

Static Public Attributes

static constexpr size_type maxMultiIndexSize = SubPreBasis::maxMultiIndexSize + isBlocked
 
static constexpr size_type minMultiIndexSize = SubPreBasis::minMultiIndexSize + isBlocked
 
static constexpr size_type multiIndexBufferSize = SubPreBasis::multiIndexBufferSize + isBlocked
 

Protected Member Functions

template<class SizePrefix , class Children >
size_type sizeImpl (SizePrefix prefix, Children children, BasisFactory::FlatInterleaved) const
 
template<class SizePrefix , class Children >
size_type sizeImpl (SizePrefix prefix, Children children, BasisFactory::FlatLexicographic) const
 
template<class SizePrefix , class Children >
size_type sizeImpl (SizePrefix prefix, Children children, BasisFactory::BlockedLexicographic) const
 
template<class SizePrefix , class Children >
size_type sizeImpl (SizePrefix prefix, Children children, BasisFactory::BlockedInterleaved) const
 
template<class NodeType , typename It , class Children >
It indicesImpl (const NodeType &node, It multiIndices, Children children, BasisFactory::FlatInterleaved) const
 
template<class NodeType , typename It , class Children >
It indicesImpl (const NodeType &node, It multiIndices, Children children, BasisFactory::FlatLexicographic) const
 
template<class NodeType , typename It , class Children >
It indicesImpl (const NodeType &node, It multiIndices, Children children, BasisFactory::BlockedLexicographic) const
 
template<class NodeType , typename It , class Children >
It indicesImpl (const NodeType &node, It multiIndices, Children children, BasisFactory::BlockedInterleaved) const
 
template<class Children >
auto containerDescriptorImpl (Children children) const
 

Static Protected Member Functions

template<class MultiIndex >
static void multiIndexPopFront (MultiIndex &M)
 
template<class MultiIndex >
static void multiIndexPushFront (MultiIndex &M, size_type M0)
 

Protected Attributes

std::size_t children_
 
SubPreBasis subPreBasis_
 

Detailed Description

template<class IMS, class SPB>
class Dune::Functions::DynamicPowerPreBasis< IMS, SPB >

A pre-basis for dynamic power bases.

This pre-basis represents a power of a given pre-basis. Its node type is a DynamicPowerBasisNodes for the given subnode.

Template Parameters
IMSAn IndexMergingStrategy used to merge the global indices of the child factories
SPBThe child pre-basis

Member Typedef Documentation

◆ GridView

template<class IMS , class SPB >
using Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::GridView = typename SPB::GridView

The grid view that the FE basis is defined on.

◆ IndexMergingStrategy

template<class IMS , class SPB >
using Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::IndexMergingStrategy = IMS

Strategy used to merge the global indices of the child factories.

◆ Node

template<class IMS , class SPB >
using Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::Node = DynamicPowerBasisNode<typename SubPreBasis::Node>

Template mapping root tree path to type of created tree node.

◆ size_type

template<class IMS , class SPB >
using Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::size_type = std::size_t

Type used for indices and size information.

◆ SubPreBasis

template<class IMS , class SPB >
using Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::SubPreBasis = SPB

The child pre-basis.

Constructor & Destructor Documentation

◆ DynamicPowerPreBasis()

template<class IMS , class SPB >
template<class... SFArgs, disableCopyMove< DynamicPowerPreBasis, SFArgs... > = 0, enableIfConstructible< SubPreBasis, SFArgs... > = 0>
Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::DynamicPowerPreBasis ( std::size_t  c,
SFArgs &&...  sfArgs 
)
inlineexplicit

Constructor for given child pre-basis objects.

The child factories will be stored as copies

Member Function Documentation

◆ children()

template<class IMS , class SPB >
std::size_t Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::children ( ) const
inline

◆ containerDescriptor()

template<class IMS , class SPB >
auto Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::containerDescriptor ( ) const
inline

Return the associated container descriptor.

◆ containerDescriptorImpl()

template<class IMS , class SPB >
template<class Children >
auto Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::containerDescriptorImpl ( Children  children) const
inlineprotected

◆ dimension()

template<class IMS , class SPB >
size_type Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::dimension ( ) const
inline

Get the total dimension of the space spanned by this basis.

◆ gridView()

template<class IMS , class SPB >
const GridView & Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::gridView ( ) const
inline

Obtain the grid view that the basis is defined on.

◆ indices()

template<class IMS , class SPB >
template<class NodeType , typename It , std::enable_if_t< NodeType::isPower, int > = 0>
It Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::indices ( const NodeType &  node,
It  it 
) const
inline

Maps from subtree index set [0..size-1] to a globally unique multi index in global basis.

◆ indicesImpl() [1/4]

template<class IMS , class SPB >
template<class NodeType , typename It , class Children >
It Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::indicesImpl ( const NodeType &  node,
It  multiIndices,
Children  children,
BasisFactory::BlockedInterleaved   
) const
inlineprotected

◆ indicesImpl() [2/4]

template<class IMS , class SPB >
template<class NodeType , typename It , class Children >
It Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::indicesImpl ( const NodeType &  node,
It  multiIndices,
Children  children,
BasisFactory::BlockedLexicographic   
) const
inlineprotected

◆ indicesImpl() [3/4]

template<class IMS , class SPB >
template<class NodeType , typename It , class Children >
It Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::indicesImpl ( const NodeType &  node,
It  multiIndices,
Children  children,
BasisFactory::FlatInterleaved   
) const
inlineprotected

◆ indicesImpl() [4/4]

template<class IMS , class SPB >
template<class NodeType , typename It , class Children >
It Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::indicesImpl ( const NodeType &  node,
It  multiIndices,
Children  children,
BasisFactory::FlatLexicographic   
) const
inlineprotected

◆ initializeIndices()

template<class IMS , class SPB >
void Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::initializeIndices ( )
inline

Initialize the global indices.

◆ makeNode()

template<class IMS , class SPB >
Node Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::makeNode ( ) const
inline

Create tree node.

◆ maxNodeSize()

template<class IMS , class SPB >
size_type Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::maxNodeSize ( ) const
inline

Get the maximal number of DOFs associated to node for any element.

◆ multiIndexPopFront()

template<class IMS , class SPB >
template<class MultiIndex >
static void Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::multiIndexPopFront ( MultiIndex &  M)
inlinestaticprotected

◆ multiIndexPushFront()

template<class IMS , class SPB >
template<class MultiIndex >
static void Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::multiIndexPushFront ( MultiIndex &  M,
size_type  M0 
)
inlinestaticprotected

◆ size() [1/2]

template<class IMS , class SPB >
size_type Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::size ( ) const
inline

Same as size(prefix) with empty prefix.

◆ size() [2/2]

template<class IMS , class SPB >
template<class SizePrefix >
size_type Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::size ( const SizePrefix &  prefix) const
inline

Return number of possible values for next position in multi index.

◆ sizeImpl() [1/4]

template<class IMS , class SPB >
template<class SizePrefix , class Children >
size_type Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::sizeImpl ( SizePrefix  prefix,
Children  children,
BasisFactory::BlockedInterleaved   
) const
inlineprotected

◆ sizeImpl() [2/4]

template<class IMS , class SPB >
template<class SizePrefix , class Children >
size_type Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::sizeImpl ( SizePrefix  prefix,
Children  children,
BasisFactory::BlockedLexicographic   
) const
inlineprotected

◆ sizeImpl() [3/4]

template<class IMS , class SPB >
template<class SizePrefix , class Children >
size_type Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::sizeImpl ( SizePrefix  prefix,
Children  children,
BasisFactory::FlatInterleaved   
) const
inlineprotected

◆ sizeImpl() [4/4]

template<class IMS , class SPB >
template<class SizePrefix , class Children >
size_type Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::sizeImpl ( SizePrefix  prefix,
Children  children,
BasisFactory::FlatLexicographic   
) const
inlineprotected

◆ subPreBasis() [1/2]

template<class IMS , class SPB >
SubPreBasis & Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::subPreBasis ( )
inline

Mutable access to the stored prebasis of the factor in the power space.

◆ subPreBasis() [2/2]

template<class IMS , class SPB >
const SubPreBasis & Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::subPreBasis ( ) const
inline

Const access to the stored prebasis of the factor in the power space.

◆ update()

template<class IMS , class SPB >
void Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::update ( const GridView gv)
inline

Update the stored grid view, to be called if the grid has changed.

Member Data Documentation

◆ children_

template<class IMS , class SPB >
std::size_t Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::children_
protected

◆ maxMultiIndexSize

template<class IMS , class SPB >
constexpr size_type Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::maxMultiIndexSize = SubPreBasis::maxMultiIndexSize + isBlocked
staticconstexpr

◆ minMultiIndexSize

template<class IMS , class SPB >
constexpr size_type Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::minMultiIndexSize = SubPreBasis::minMultiIndexSize + isBlocked
staticconstexpr

◆ multiIndexBufferSize

template<class IMS , class SPB >
constexpr size_type Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::multiIndexBufferSize = SubPreBasis::multiIndexBufferSize + isBlocked
staticconstexpr

◆ subPreBasis_

template<class IMS , class SPB >
SubPreBasis Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::subPreBasis_
protected

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