Loading...
Searching...
No Matches
Dune::Functions::CompositePreBasis< IMS, SPB > Class Template Reference
Function space bases » Function space basis implementations

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.

## 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.
template<class GV, std::enable_if_t< std::conjunction_v< std::bool_constant<(children > 1)>, std::is_same< GV, GridView >, std::is_constructible< SPB, GridView >... >, int>
| CompositePreBasis (const GV &gv)
| Constructor for given GridView.
void | initializeIndices ()
| Initialize the global indices.
const GridView & | gridView () 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.
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.
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.
const auto & | subPreBases () const
| Const access to the stored prebases tuple.
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.
auto | containerDescriptor () const
| Return the associated container descriptor.

## Static Public Attributes

static constexpr size_type | maxMultiIndexSize = std::max({SPB::maxMultiIndexSize...}) + isBlocked
static constexpr size_type | minMultiIndexSize = std::min({SPB::minMultiIndexSize...}) + isBlocked
static constexpr size_type | multiIndexBufferSize = std::max({SPB::multiIndexBufferSize...}) + isBlocked

## Protected Types

using | ChildIndices = std::make_index_sequence<children>

## Static Protected Attributes

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

## Detailed Description

template<class IMS, class... SPB>
class Dune::Functions::CompositePreBasis< 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

  IMS | An IndexMergingStrategy used to merge the global indices of the child pre-bases
  SPB | The child pre-bases

## Member Typedef Documentation

## ChildIndices

template<class IMS, class... SPB>

using Dune::Functions::CompositePreBasis< IMS, SPB >::ChildIndices = std::make_index_sequence<children>

protected

## GridView

template<class IMS, class... SPB>

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

The grid view that the FE basis is defined on.

## IndexMergingStrategy

template<class IMS, class... SPB>

using Dune::Functions::CompositePreBasis< IMS, SPB >::IndexMergingStrategy = IMS

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

## Node

template<class IMS, class... SPB>

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

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

## size_type

template<class IMS, class... SPB>

using Dune::Functions::CompositePreBasis< IMS, SPB >::size_type = std::size_t

Type used for indices and size information.

## SubPreBases

template<class IMS, class... SPB>

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

Tuple of child pre-bases.

## SubPreBasis

template<class IMS, class... SPB>
template<std::size_t i>

using Dune::Functions::CompositePreBasis< IMS, SPB >::SubPreBasis = std::tuple_element_t<i, SubPreBases>

Export individual child pre-bases by index.

## Constructor & Destructor Documentation

## CompositePreBasis() [1/2]

template<class IMS, class... SPB>
template<class... SFArgs, disableCopyMove< CompositePreBasis, SFArgs... > = 0, enableIfConstructible< std::tuple< SPB... >, SFArgs... > = 0>

Dune::Functions::CompositePreBasis< IMS, SPB >::CompositePreBasis | ( | SFArgs &&... | sfArgs | ) |

inline

Constructor for given child pre-basis objects.

The child pre-basis will be stored as copies

## CompositePreBasis() [2/2]

template<class IMS, class... SPB>
template<class GV, std::enable_if_t< std::conjunction_v< std::bool_constant<(children > 1)>, std::is_same< GV, GridView >, std::is_constructible< SPB, GridView >... >, int>

Dune::Functions::CompositePreBasis< IMS, SPB >::CompositePreBasis | ( | const GV & | gv | ) |

inline

Constructor for given GridView.

This constructor is only available if all child pre-bases are constructible from the grid view.

## Member Function Documentation

## containerDescriptor()

template<class IMS, class... SPB>

auto Dune::Functions::CompositePreBasis< IMS, SPB >::containerDescriptor | ( |  | ) | const

inline

Return the associated container descriptor.

## dimension()

template<class IMS, class... SPB>

size_type Dune::Functions::CompositePreBasis< 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::CompositePreBasis< IMS, SPB >::gridView | ( |  | ) | const

inline

Obtain the grid view that the basis is defined on.

## indices()

template<class IMS, class... SPB>
template<typename It>

It Dune::Functions::CompositePreBasis< 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 IMS, class... SPB>

void Dune::Functions::CompositePreBasis< IMS, SPB >::initializeIndices | ( |  | ) |

inline

Initialize the global indices.

## makeNode()

template<class IMS, class... SPB>

Node Dune::Functions::CompositePreBasis< IMS, SPB >::makeNode | ( |  | ) | const

inline

Create tree node.

## maxNodeSize()

template<class IMS, class... SPB>

size_type Dune::Functions::CompositePreBasis< IMS, SPB >::maxNodeSize | ( |  | ) | const

inline

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

## size() [1/2]

template<class IMS, class... SPB>

size_type Dune::Functions::CompositePreBasis< 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::CompositePreBasis< IMS, SPB >::size | ( | const SizePrefix & | prefix | ) | const

inline

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

## subPreBases()

template<class IMS, class... SPB>

const auto & Dune::Functions::CompositePreBasis< IMS, SPB >::subPreBases | ( |  | ) | const

inline

Const access to the stored prebases tuple.

## subPreBasis() [1/2]

template<class IMS, class... SPB>
template<std::size_t i>

SubPreBasis< i > & Dune::Functions::CompositePreBasis< 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 IMS, class... SPB>
template<std::size_t i>

const SubPreBasis< i > & Dune::Functions::CompositePreBasis< 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 IMS, class... SPB>

void Dune::Functions::CompositePreBasis< 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>

const std::size_t Dune::Functions::CompositePreBasis< IMS, SPB >::children = sizeof...(SPB)

static protected

## maxMultiIndexSize

template<class IMS, class... SPB>

size_type Dune::Functions::CompositePreBasis< IMS, SPB >::maxMultiIndexSize = std::max({SPB::maxMultiIndexSize...}) + isBlocked

static constexpr

## minMultiIndexSize

template<class IMS, class... SPB>

size_type Dune::Functions::CompositePreBasis< IMS, SPB >::minMultiIndexSize = std::min({SPB::minMultiIndexSize...}) + isBlocked

static constexpr

## multiIndexBufferSize

template<class IMS, class... SPB>

size_type Dune::Functions::CompositePreBasis< IMS, SPB >::multiIndexBufferSize = std::max({SPB::multiIndexBufferSize...}) + isBlocked

static constexpr

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

- compositebasis.hh