dune-functions
2.5.1
|
A factory for composite bases. More...
#include <dune/functions/functionspacebases/compositebasis.hh>
Classes | |
struct | FixedTP |
Public Types | |
using | SubFactories = std::tuple< SF... > |
Tuple of child factories. More... | |
using | GridView = typename std::tuple_element< 0, SubFactories >::type::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<std::size_t k> | |
using | SubFactory = typename std::tuple_element< k, std::tuple< SF... > >::type |
Template mapping index of child to its factory type. More... | |
template<class TP > | |
using | Node = typename FixedTP< TP >::Node |
Template mapping root tree path to type of created tree node. More... | |
template<class TP > | |
using | IndexSet = CompositeNodeIndexSet< MI, TP, IMS, SF... > |
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, MultiIndex::max_size()+1 > |
Type used for prefixes handed to the size() method. More... | |
Public Member Functions | |
template<class... SFArgs, disableCopyMove< CompositeNodeFactory, SFArgs... > = 0, enableIfConstructible< std::tuple< SF... >, SFArgs... > = 0> | |
CompositeNodeFactory (SFArgs &&... sfArgs) | |
Constructor for given child factory objects. More... | |
void | initializeIndices () |
Initialize the global indices. More... | |
const GridView & | gridView () 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 Types | |
using | ChildIndexTuple = IntegerSequenceTuple< Imp::index_sequence_for< SF... > > |
Protected Attributes | |
std::tuple< SF... > | subFactories_ |
Static Protected Attributes | |
static const std::size_t | children = sizeof...(SF) |
A factory for composite bases.
This node factory represente a composition of several given node factories. Its node type is a CompositeBasisNodes for the given subnodes.
MI | Type to be used for global multi-indices |
IMS | An IndexMergingStrategy used to merge the global indices of the child factories |
SF | The child factories |
|
protected |
using Dune::Functions::CompositeNodeFactory< MI, IMS, SF >::GridView = typename std::tuple_element<0, SubFactories>::type::GridView |
The grid view that the FE basis is defined on.
using Dune::Functions::CompositeNodeFactory< MI, IMS, SF >::IndexMergingStrategy = IMS |
Strategy used to merge the global indices of the child factories.
using Dune::Functions::CompositeNodeFactory< MI, IMS, SF >::IndexSet = CompositeNodeIndexSet<MI, TP, IMS, SF...> |
Template mapping root tree path to type of created tree node index set.
using Dune::Functions::CompositeNodeFactory< MI, IMS, SF >::MultiIndex = MI |
Type used for global numbering of the basis vectors.
using Dune::Functions::CompositeNodeFactory< MI, IMS, SF >::Node = typename FixedTP<TP>::Node |
Template mapping root tree path to type of created tree node.
using Dune::Functions::CompositeNodeFactory< MI, IMS, SF >::size_type = std::size_t |
Type used for indices and size information.
using Dune::Functions::CompositeNodeFactory< MI, IMS, SF >::SizePrefix = Dune::ReservedVector<size_type, MultiIndex::max_size()+1> |
Type used for prefixes handed to the size() method.
using Dune::Functions::CompositeNodeFactory< MI, IMS, SF >::SubFactories = std::tuple<SF...> |
Tuple of child factories.
using Dune::Functions::CompositeNodeFactory< MI, IMS, SF >::SubFactory = typename std::tuple_element<k, std::tuple<SF...> >::type |
Template mapping index of child to its factory type.
|
inline |
Constructor for given child factory objects.
The child factories will be stored as copies
|
inline |
Get the total dimension of the space spanned by this basis.
|
inline |
Obtain the grid view that the basis is defined on.
|
inline |
Create tree node index set with given root tree path.
TP | Type of root tree path |
tp | Root tree path |
Create an index set suitable for the tree node obtained by node(tp).
|
inline |
Initialize the global indices.
|
inline |
Get the maximal number of DOFs associated to node for any element.
|
inline |
Create tree node with given root tree path.
TP | Type of root tree path |
tp | Root 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.
|
inline |
Same as size(prefix) with empty prefix.
|
inline |
Return number of possible values for next position in multi index.
|
inline |
Update the stored grid view, to be called if the grid has changed.
|
staticprotected |
|
protected |