![]() |
Dune-Functions 2.11
|
Loading...
Searching...
No Matches
dynamicpowerbasis.hh
Go to the documentation of this file.
51 static const bool isBlocked = std::is_same_v<IMS,BasisFactory::BlockedLexicographic> or std::is_same_v<IMS,BasisFactory::BlockedInterleaved>;
86 static_assert(models<Concept::PreBasis<GridView>, SubPreBasis>(), "Subprebasis passed to DynamicPowerPreBasis does not model the PreBasis concept.");
185 size_type sizeImpl(SizePrefix prefix, Children children, BasisFactory::BlockedLexicographic) const
194 size_type sizeImpl(SizePrefix prefix, Children children, BasisFactory::BlockedInterleaved) const
264 It indicesImpl(const NodeType& node, It multiIndices, Children children, BasisFactory::FlatInterleaved) const
291 It indicesImpl(const NodeType& node, It multiIndices, Children children, BasisFactory::FlatLexicographic) const
324 It indicesImpl(const NodeType& node, It multiIndices, Children children, BasisFactory::BlockedLexicographic) const
350 It indicesImpl(const NodeType& node, It multiIndices, Children children, BasisFactory::BlockedInterleaved) const
410auto power(ChildPreBasisFactory&& childPreBasisFactory, std::size_t k, const IndexMergingStrategy&)
414 return DynamicPowerPreBasis<IndexMergingStrategy, decltype(childPreBasis)>(k,std::move(childPreBasis));
438 return DynamicPowerPreBasis<BlockedInterleaved, decltype(childPreBasis)>(k,std::move(childPreBasis));
Lightweight representation of (hierarchical) size and block structure extracted from a basis to descr...
auto power(ChildPreBasisFactory &&childPreBasisFactory, std::size_t k, const IndexMergingStrategy &)
Create a pre-basis factory that can build a PowerPreBasis.
Definition dynamicpowerbasis.hh:410
STL namespace.
auto containerDescriptor(const PreBasis &preBasis)
Return the container descriptor of the pre-basis, if defined, otherwise ContainerDescriptor::Unknown.
Definition containerdescriptors.hh:58
auto makeUniformDescriptor(std::integral_constant< std::size_t, n >, Child child)
Generate a uniform descriptor in case the size is a static constant.
Definition containerdescriptors.hh:147
static constexpr size_type M()
constexpr std::integer_sequence< T, II... > tail(std::integer_sequence< T, I0, II... >)
constexpr HybridMultiIndex< T..., std::size_t > push_back(const HybridMultiIndex< T... > &tp, std::size_t i)
Base class for index merging strategies to simplify detection.
Definition basistags.hh:48
Lexicographic merging of direct children without blocking.
Definition basistags.hh:84
Interleaved merging of direct children without blocking.
Definition basistags.hh:118
Lexicographic merging of direct children with blocking (i.e. creating one block per direct child).
Definition basistags.hh:152
Interleaved merging of direct children with blocking (i.e. creating blocks at the leaves containing o...
Definition basistags.hh:184
Fallback container descriptor if nothing else fits.
Definition containerdescriptors.hh:52
A pre-basis for dynamic power bases.
Definition dynamicpowerbasis.hh:50
IMS IndexMergingStrategy
Strategy used to merge the global indices of the child factories.
Definition dynamicpowerbasis.hh:65
DynamicPowerPreBasis(std::size_t c, SFArgs &&... sfArgs)
Constructor for given child pre-basis objects.
Definition dynamicpowerbasis.hh:82
static void multiIndexPopFront(MultiIndex &M)
Definition dynamicpowerbasis.hh:177
size_type dimension() const
Get the total dimension of the space spanned by this basis.
Definition dynamicpowerbasis.hh:224
auto containerDescriptorImpl(Children children) const
Definition dynamicpowerbasis.hh:374
void initializeIndices()
Initialize the global indices.
Definition dynamicpowerbasis.hh:90
size_type sizeImpl(SizePrefix prefix, Children children, BasisFactory::FlatInterleaved) const
Definition dynamicpowerbasis.hh:139
static constexpr size_type maxMultiIndexSize
Definition dynamicpowerbasis.hh:70
void update(const GridView &gv)
Update the stored grid view, to be called if the grid has changed.
Definition dynamicpowerbasis.hh:102
auto containerDescriptor() const
Return the associated container descriptor.
Definition dynamicpowerbasis.hh:256
size_type size() const
Same as size(prefix) with empty prefix.
Definition dynamicpowerbasis.hh:124
It indicesImpl(const NodeType &node, It multiIndices, Children children, BasisFactory::BlockedInterleaved) const
Definition dynamicpowerbasis.hh:350
SubPreBasis & subPreBasis()
Mutable access to the stored prebasis of the factor in the power space.
Definition dynamicpowerbasis.hh:242
size_type sizeImpl(SizePrefix prefix, Children children, BasisFactory::FlatLexicographic) const
Definition dynamicpowerbasis.hh:155
static void multiIndexPushFront(MultiIndex &M, size_type M0)
Definition dynamicpowerbasis.hh:315
SubPreBasis subPreBasis_
Definition dynamicpowerbasis.hh:391
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.
Definition dynamicpowerbasis.hh:250
size_type sizeImpl(SizePrefix prefix, Children children, BasisFactory::BlockedLexicographic) const
Definition dynamicpowerbasis.hh:185
size_type sizeImpl(SizePrefix prefix, Children children, BasisFactory::BlockedInterleaved) const
Definition dynamicpowerbasis.hh:194
It indicesImpl(const NodeType &node, It multiIndices, Children children, BasisFactory::BlockedLexicographic) const
Definition dynamicpowerbasis.hh:324
static constexpr size_type multiIndexBufferSize
Definition dynamicpowerbasis.hh:72
SPB SubPreBasis
The child pre-basis.
Definition dynamicpowerbasis.hh:56
Node makeNode() const
Create tree node.
Definition dynamicpowerbasis.hh:110
const SubPreBasis & subPreBasis() const
Const access to the stored prebasis of the factor in the power space.
Definition dynamicpowerbasis.hh:236
It indicesImpl(const NodeType &node, It multiIndices, Children children, BasisFactory::FlatInterleaved) const
Definition dynamicpowerbasis.hh:264
std::size_t children() const
Definition dynamicpowerbasis.hh:118
size_type maxNodeSize() const
Get the maximal number of DOFs associated to node for any element.
Definition dynamicpowerbasis.hh:230
It indicesImpl(const NodeType &node, It multiIndices, Children children, BasisFactory::FlatLexicographic) const
Definition dynamicpowerbasis.hh:291
size_type size(const SizePrefix &prefix) const
Return number of possible values for next position in multi index.
Definition dynamicpowerbasis.hh:131
typename SPB::GridView GridView
The grid view that the FE basis is defined on.
Definition dynamicpowerbasis.hh:59
std::size_t children_
Definition dynamicpowerbasis.hh:390
const GridView & gridView() const
Obtain the grid view that the basis is defined on.
Definition dynamicpowerbasis.hh:96
static constexpr size_type minMultiIndexSize
Definition dynamicpowerbasis.hh:71
Definition nodes.hh:332
