dune-functions  2.5.0
Public Types | Public Member Functions | Protected Attributes | List of all members
Dune::Functions::PowerNodeFactory< MI, IMS, SF, C > Class Template Reference

A factory for power bases. More...

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

Public Types

using SubFactory = SF
 The child factory. More...
 
using GridView = typename SF::GridView
 The grid view that the FE basis is defined on. More...
 
using size_type = std::size_t
 Type used for indices and size information. More...
 
using IndexMergingStrategy = IMS
 Strategy used to merge the global indices of the child factories. More...
 
template<class TP >
using SubNode = typename SubFactory::template Node< decltype(TypeTree::push_back(TP(), 0))>
 
template<class TP >
using SubIndexSet = typename SubFactory::template IndexSet< decltype(TypeTree::push_back(TP(), 0))>
 
template<class TP >
using Node = PowerBasisNode< size_type, TP, SubNode< TP >, children >
 Template mapping root tree path to type of created tree node. More...
 
template<class TP >
using IndexSet = PowerNodeIndexSet< MI, TP, IMS, SF, C >
 Template mapping root tree path to type of created tree node index set. More...
 
using MultiIndex = MI
 Type used for global numbering of the basis vectors. More...
 
using SizePrefix = Dune::ReservedVector< size_type, SubFactory::SizePrefix::max_size()+1 >
 Type used for prefixes handed to the size() method. More...
 

Public Member Functions

template<class... SFArgs, disableCopyMove< PowerNodeFactory, SFArgs... > = 0, enableIfConstructible< SubFactory, SFArgs... > = 0>
 PowerNodeFactory (SFArgs &&... sfArgs)
 Constructor for given child factory objects. More...
 
void initializeIndices ()
 Initialize the global indices. More...
 
const GridViewgridView () const
 Obtain the grid view that the basis is defined on. More...
 
void update (const GridView &gv)
 Update the stored grid view, to be called if the grid has changed. More...
 
template<class TP >
Node< TP > node (const TP &tp) const
 Create tree node with given root tree path. More...
 
template<class TP >
IndexSet< TP > indexSet () const
 Create tree node index set with given root tree path. More...
 
size_type size () const
 Same as size(prefix) with empty prefix. More...
 
size_type size (const SizePrefix &prefix) const
 Return number of possible values for next position in multi index. More...
 
size_type dimension () const
 Get the total dimension of the space spanned by this basis. More...
 
size_type maxNodeSize () const
 Get the maximal number of DOFs associated to node for any element. More...
 

Protected Attributes

SubFactory subFactory_
 

Detailed Description

template<class MI, class IMS, class SF, std::size_t C>
class Dune::Functions::PowerNodeFactory< MI, IMS, SF, C >

A factory for power bases.

This node factory represente a power of a given node factory. Its node type is a PowerBasisNodes for the given subnode.

Template Parameters
MIType to be used for multi-indices
IMSAn IndexMergingStrategy used to merge the global indices of the child factories
SFThe child factory
CThe exponent of the power node

Member Typedef Documentation

§ GridView

template<class MI , class IMS , class SF , std::size_t C>
using Dune::Functions::PowerNodeFactory< MI, IMS, SF, C >::GridView = typename SF::GridView

The grid view that the FE basis is defined on.

§ IndexMergingStrategy

template<class MI , class IMS , class SF , std::size_t C>
using Dune::Functions::PowerNodeFactory< MI, IMS, SF, C >::IndexMergingStrategy = IMS

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

§ IndexSet

template<class MI , class IMS , class SF , std::size_t C>
template<class TP >
using Dune::Functions::PowerNodeFactory< MI, IMS, SF, C >::IndexSet = PowerNodeIndexSet<MI, TP, IMS, SF, C>

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

§ MultiIndex

template<class MI , class IMS , class SF , std::size_t C>
using Dune::Functions::PowerNodeFactory< MI, IMS, SF, C >::MultiIndex = MI

Type used for global numbering of the basis vectors.

§ Node

template<class MI , class IMS , class SF , std::size_t C>
template<class TP >
using Dune::Functions::PowerNodeFactory< MI, IMS, SF, C >::Node = PowerBasisNode<size_type, TP, SubNode<TP>, children>

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

§ size_type

template<class MI , class IMS , class SF , std::size_t C>
using Dune::Functions::PowerNodeFactory< MI, IMS, SF, C >::size_type = std::size_t

Type used for indices and size information.

§ SizePrefix

template<class MI , class IMS , class SF , std::size_t C>
using Dune::Functions::PowerNodeFactory< MI, IMS, SF, C >::SizePrefix = Dune::ReservedVector<size_type, SubFactory::SizePrefix::max_size()+1>

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

§ SubFactory

template<class MI , class IMS , class SF , std::size_t C>
using Dune::Functions::PowerNodeFactory< MI, IMS, SF, C >::SubFactory = SF

The child factory.

§ SubIndexSet

template<class MI , class IMS , class SF , std::size_t C>
template<class TP >
using Dune::Functions::PowerNodeFactory< MI, IMS, SF, C >::SubIndexSet = typename SubFactory::template IndexSet<decltype(TypeTree::push_back(TP(), 0))>

§ SubNode

template<class MI , class IMS , class SF , std::size_t C>
template<class TP >
using Dune::Functions::PowerNodeFactory< MI, IMS, SF, C >::SubNode = typename SubFactory::template Node<decltype(TypeTree::push_back(TP(), 0))>

Constructor & Destructor Documentation

§ PowerNodeFactory()

template<class MI , class IMS , class SF , std::size_t C>
template<class... SFArgs, disableCopyMove< PowerNodeFactory, SFArgs... > = 0, enableIfConstructible< SubFactory, SFArgs... > = 0>
Dune::Functions::PowerNodeFactory< MI, IMS, SF, C >::PowerNodeFactory ( SFArgs &&...  sfArgs)
inline

Constructor for given child factory objects.

The child factories will be stored as copies

Member Function Documentation

§ dimension()

template<class MI , class IMS , class SF , std::size_t C>
size_type Dune::Functions::PowerNodeFactory< MI, IMS, SF, C >::dimension ( ) const
inline

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

§ gridView()

template<class MI , class IMS , class SF , std::size_t C>
const GridView& Dune::Functions::PowerNodeFactory< MI, IMS, SF, C >::gridView ( ) const
inline

Obtain the grid view that the basis is defined on.

§ indexSet()

template<class MI , class IMS , class SF , std::size_t C>
template<class TP >
IndexSet<TP> Dune::Functions::PowerNodeFactory< MI, IMS, SF, C >::indexSet ( ) const
inline

Create tree node index set with given root tree path.

Template Parameters
TPType of root tree path
Parameters
tpRoot tree path

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

§ initializeIndices()

template<class MI , class IMS , class SF , std::size_t C>
void Dune::Functions::PowerNodeFactory< MI, IMS, SF, C >::initializeIndices ( )
inline

Initialize the global indices.

§ maxNodeSize()

template<class MI , class IMS , class SF , std::size_t C>
size_type Dune::Functions::PowerNodeFactory< MI, IMS, SF, C >::maxNodeSize ( ) const
inline

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

§ node()

template<class MI , class IMS , class SF , std::size_t C>
template<class TP >
Node<TP> Dune::Functions::PowerNodeFactory< MI, IMS, SF, C >::node ( const TP &  tp) const
inline

Create tree node with given root tree path.

Template Parameters
TPType of root tree path
Parameters
tpRoot tree path

By passing a non-trivial root tree path this can be used to create a node suitable for being placed in a tree at the position specified by the root tree path.

§ size() [1/2]

template<class MI , class IMS , class SF , std::size_t C>
size_type Dune::Functions::PowerNodeFactory< MI, IMS, SF, C >::size ( ) const
inline

Same as size(prefix) with empty prefix.

§ size() [2/2]

template<class MI , class IMS , class SF , std::size_t C>
size_type Dune::Functions::PowerNodeFactory< MI, IMS, SF, C >::size ( const SizePrefix prefix) const
inline

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

§ update()

template<class MI , class IMS , class SF , std::size_t C>
void Dune::Functions::PowerNodeFactory< MI, IMS, SF, C >::update ( const GridView gv)
inline

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

Member Data Documentation

§ subFactory_

template<class MI , class IMS , class SF , std::size_t C>
SubFactory Dune::Functions::PowerNodeFactory< MI, IMS, SF, C >::subFactory_
protected

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