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

A pre-basis for composite bases. More...

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

Public Types

using SubPreBases = std::tuple< SPB... >
 Tuple of child pre-bases.
 
template<std::size_t i>
using SubPreBasis = std::tuple_element_t< i, SubPreBases >
 Export individual child pre-bases by index.
 
using GridView = typename std::tuple_element_t< 0, SubPreBases >::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 pre-bases.
 
using Node = CompositeBasisNode< typename SPB::Node... >
 Template mapping root tree path to type of created tree node.
 
using IndexSet = Impl::DefaultNodeIndexSet< CompositePreBasis >
 Type of created tree node index set.
 
using MultiIndex = MI
 Type used for global numbering of the basis vectors.
 
using SizePrefix = Dune::ReservedVector< size_type, MultiIndex::max_size()>
 Type used for prefixes handed to the size() method.
 

Public Member Functions

template<class... SFArgs, disableCopyMove< CompositePreBasis, SFArgs... > = 0, enableIfConstructible< std::tuple< SPB... >, SFArgs... > = 0>
 CompositePreBasis (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.
 
IndexSet makeIndexSet () const
 Create tree node index set.
 
size_type size () const
 Same as size(prefix) with empty prefix.
 
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.
 
template<std::size_t i>
const SubPreBasis< i > & subPreBasis (Dune::index_constant< i >={}) const
 Const access to the stored prebasis of the factor in the power space.
 
template<std::size_t i>
SubPreBasis< i > & subPreBasis (Dune::index_constant< i >={})
 Mutable access to the stored prebasis of the factor in the power space.
 
template<typename It >
It indices (const Node &node, It it) const
 Maps from subtree index set [0..size-1] to a globally unique multi index in global basis.
 

Protected Types

using ChildIndices = std::make_index_sequence< children >
 

Static Protected Attributes

static const std::size_t children = sizeof...(SPB)
 

Detailed Description

template<class MI, class IMS, class... SPB>
class Dune::Functions::CompositePreBasis< MI, IMS, SPB >

A pre-basis for composite bases.

This pre-basis represents a composition of several given pre-bases. Its node type is a CompositeBasisNodes for the given subnodes.

Template Parameters
MIType to be used for global multi-indices
IMSAn IndexMergingStrategy used to merge the global indices of the child pre-bases
SPBThe child pre-bases

Member Typedef Documentation

◆ ChildIndices

template<class MI , class IMS , class... SPB>
using Dune::Functions::CompositePreBasis< MI, IMS, SPB >::ChildIndices = std::make_index_sequence<children>
protected

◆ GridView

template<class MI , class IMS , class... SPB>
using Dune::Functions::CompositePreBasis< MI, IMS, SPB >::GridView = typename std::tuple_element_t<0, SubPreBases>::GridView

The grid view that the FE basis is defined on.

◆ IndexMergingStrategy

template<class MI , class IMS , class... SPB>
using Dune::Functions::CompositePreBasis< MI, IMS, SPB >::IndexMergingStrategy = IMS

Strategy used to merge the global indices of the child pre-bases.

◆ IndexSet

template<class MI , class IMS , class... SPB>
using Dune::Functions::CompositePreBasis< MI, IMS, SPB >::IndexSet = Impl::DefaultNodeIndexSet<CompositePreBasis>

Type of created tree node index set.

Deprecated:

◆ MultiIndex

template<class MI , class IMS , class... SPB>
using Dune::Functions::CompositePreBasis< MI, IMS, SPB >::MultiIndex = MI

Type used for global numbering of the basis vectors.

◆ Node

template<class MI , class IMS , class... SPB>
using Dune::Functions::CompositePreBasis< MI, IMS, SPB >::Node = CompositeBasisNode<typename SPB::Node...>

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

◆ size_type

template<class MI , class IMS , class... SPB>
using Dune::Functions::CompositePreBasis< MI, IMS, SPB >::size_type = std::size_t

Type used for indices and size information.

◆ SizePrefix

template<class MI , class IMS , class... SPB>
using Dune::Functions::CompositePreBasis< MI, IMS, SPB >::SizePrefix = Dune::ReservedVector<size_type, MultiIndex::max_size()>

Type used for prefixes handed to the size() method.

◆ SubPreBases

template<class MI , class IMS , class... SPB>
using Dune::Functions::CompositePreBasis< MI, IMS, SPB >::SubPreBases = std::tuple<SPB...>

Tuple of child pre-bases.

◆ SubPreBasis

template<class MI , class IMS , class... SPB>
template<std::size_t i>
using Dune::Functions::CompositePreBasis< MI, IMS, SPB >::SubPreBasis = std::tuple_element_t<i, SubPreBases>

Export individual child pre-bases by index.

Constructor & Destructor Documentation

◆ CompositePreBasis()

template<class MI , class IMS , class... SPB>
template<class... SFArgs, disableCopyMove< CompositePreBasis, SFArgs... > = 0, enableIfConstructible< std::tuple< SPB... >, SFArgs... > = 0>
Dune::Functions::CompositePreBasis< MI, IMS, SPB >::CompositePreBasis ( SFArgs &&...  sfArgs)
inline

Constructor for given child pre-basis objects.

The child pre-basis will be stored as copies

Member Function Documentation

◆ dimension()

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

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

◆ gridView()

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

Obtain the grid view that the basis is defined on.

◆ indices()

template<class MI , class IMS , class... SPB>
template<typename It >
It Dune::Functions::CompositePreBasis< MI, IMS, SPB >::indices ( const Node node,
It  it 
) const
inline

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

◆ initializeIndices()

template<class MI , class IMS , class... SPB>
void Dune::Functions::CompositePreBasis< MI, IMS, SPB >::initializeIndices ( )
inline

Initialize the global indices.

◆ makeIndexSet()

template<class MI , class IMS , class... SPB>
IndexSet Dune::Functions::CompositePreBasis< MI, IMS, SPB >::makeIndexSet ( ) const
inline

Create tree node index set.

Create an index set suitable for the tree node obtained by makeNode().

Deprecated:

◆ makeNode()

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

Create tree node.

◆ maxNodeSize()

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

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

◆ size() [1/2]

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

Same as size(prefix) with empty prefix.

◆ size() [2/2]

template<class MI , class IMS , class... SPB>
size_type Dune::Functions::CompositePreBasis< MI, IMS, SPB >::size ( const SizePrefix prefix) const
inline

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

◆ subPreBasis() [1/2]

template<class MI , class IMS , class... SPB>
template<std::size_t i>
SubPreBasis< i > & Dune::Functions::CompositePreBasis< MI, IMS, SPB >::subPreBasis ( Dune::index_constant< i >  = {})
inline

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

◆ subPreBasis() [2/2]

template<class MI , class IMS , class... SPB>
template<std::size_t i>
const SubPreBasis< i > & Dune::Functions::CompositePreBasis< MI, IMS, SPB >::subPreBasis ( Dune::index_constant< i >  = {}) const
inline

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

◆ update()

template<class MI , class IMS , class... SPB>
void Dune::Functions::CompositePreBasis< MI, 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 MI , class IMS , class... SPB>
const std::size_t Dune::Functions::CompositePreBasis< MI, IMS, SPB >::children = sizeof...(SPB)
staticprotected

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