Loading...
Searching...
No Matches
Dune::Functions::PowerPreBasis< IMS, SPB, C > Class Template Reference

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

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

Inheritance diagram for Dune::Functions::PowerPreBasis< IMS, SPB, C >:

## Public Types

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

## Public Member Functions

template<class... SFArgs, disableCopyMove< PowerPreBasis, SFArgs... > = 0, enableIfConstructible< SubPreBasis, SFArgs... > = 0>
| PowerPreBasis (SFArgs &&... sfArgs)
| Constructor for given child pre-basis objects for static size of the power-basis.
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.
template<class NodeType, typename It> requires Dune::TypeTree::Concept::UniformInnerTreeNode<NodeType>
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.
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.
std::size_t | children () const
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 SubPreBasis & | subPreBasis () const
| Const access to the stored prebasis of the factor in the power space.
SubPreBasis & | subPreBasis ()
| Mutable access to the stored prebasis of the factor in the power space.

## Static Public Attributes

static constexpr std::integral_constant< std::size_t, C > | children = {}
| Number of children provided as an integral constant.
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, std::size_t C>
class Dune::Functions::PowerPreBasis< IMS, SPB, C >

A pre-basis for power bases.

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

Template Parameters

  IMS | An IndexMergingStrategy used to merge the global indices of the child factories
  SPB | The child pre-basis
  C | The exponent of the power node

## Member Typedef Documentation

## GridView

template<class IMS, class SPB>

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

inherited

The grid view that the FE basis is defined on.

## IndexMergingStrategy

template<class IMS, class SPB, std::size_t C>

using Dune::Functions::PowerPreBasis< IMS, SPB, C >::IndexMergingStrategy = IMS

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

## Node

template<class IMS, class SPB, std::size_t C>

using Dune::Functions::PowerPreBasis< IMS, SPB, C >::Node = PowerBasisNode<typename SubPreBasis::Node, C>

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

## size_type

template<class IMS, class SPB, std::size_t C>

using Dune::Functions::PowerPreBasis< IMS, SPB, C >::size_type = typename Base::size_type

Type used for indices and size information.

## SubPreBasis

template<class IMS, class SPB, std::size_t C>

using Dune::Functions::PowerPreBasis< IMS, SPB, C >::SubPreBasis = SPB

The child pre-basis.

## Constructor & Destructor Documentation

## PowerPreBasis()

template<class IMS, class SPB, std::size_t C>
template<class... SFArgs, disableCopyMove< PowerPreBasis, SFArgs... > = 0, enableIfConstructible< SubPreBasis, SFArgs... > = 0>

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

inline explicit

Constructor for given child pre-basis objects for static size of the power-basis.

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 inherited

## containerDescriptor()

template<class IMS, class SPB, std::size_t C>

auto Dune::Functions::PowerPreBasis< IMS, SPB, C >::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

inline protected inherited

## dimension()

template<class IMS, class SPB>

size_type Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::dimension | ( |  | ) | const

inline inherited

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 inherited

Obtain the grid view that the basis is defined on.

## indices()

template<class IMS, class SPB, std::size_t C>
template<class NodeType, typename It>
requires Dune::TypeTree::Concept::UniformInnerTreeNode<NodeType>

It Dune::Functions::PowerPreBasis< IMS, SPB, C >::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

inline protected inherited

## 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

inline protected inherited

## 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

inline protected inherited

## 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

inline protected inherited

## initializeIndices()

template<class IMS, class SPB>

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

inline inherited

Initialize the global indices.

## makeNode()

template<class IMS, class SPB, std::size_t C>

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

inline

Create tree node.

## maxNodeSize()

template<class IMS, class SPB>

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

inline inherited

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

## multiIndexPopFront()

template<class IMS, class SPB>
template<class MultiIndex>

void Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::multiIndexPopFront | ( | MultiIndex & | M | ) |

inline static protected inherited

## multiIndexPushFront()

template<class IMS, class SPB>
template<class MultiIndex>

void Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::multiIndexPushFront | ( | MultiIndex & | M,
|  | size_type | M0 )

inline static protected inherited

## size() [1/2]

template<class IMS, class SPB, std::size_t C>

size_type Dune::Functions::PowerPreBasis< IMS, SPB, C >::size | ( |  | ) | const

inline

Same as size(prefix) with empty prefix.

## size() [2/2]

template<class IMS, class SPB, std::size_t C>
template<class SizePrefix>

size_type Dune::Functions::PowerPreBasis< IMS, SPB, C >::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

inline protected inherited

## 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

inline protected inherited

## 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

inline protected inherited

## 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

inline protected inherited

## subPreBasis() [1/2]

template<class IMS, class SPB>

SubPreBasis & Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::subPreBasis | ( |  | ) |

inline inherited

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 inherited

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 inherited

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 C>

std::integral_constant<std::size_t,C> Dune::Functions::PowerPreBasis< IMS, SPB, C >::children = {}

inline static constexpr

Number of children provided as an integral constant.

## children_

template<class IMS, class SPB>

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

protected inherited

## maxMultiIndexSize

template<class IMS, class SPB>

size_type Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::maxMultiIndexSize = SubPreBasis::maxMultiIndexSize + isBlocked

static constexpr inherited

## minMultiIndexSize

template<class IMS, class SPB>

size_type Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::minMultiIndexSize = SubPreBasis::minMultiIndexSize + isBlocked

static constexpr inherited

## multiIndexBufferSize

template<class IMS, class SPB>

size_type Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::multiIndexBufferSize = SubPreBasis::multiIndexBufferSize + isBlocked

static constexpr inherited

## subPreBasis_

template<class IMS, class SPB>

SubPreBasis Dune::Functions::DynamicPowerPreBasis< IMS, SPB >::subPreBasis_

protected inherited

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

- powerbasis.hh