|
dune-functions 2.8.0
|
Loading...
Searching...
No Matches
compositebasis.hh
Go to the documentation of this file.
104 static_assert(models<Concept::PreBasis<GridView>, std::decay_t<decltype(subPreBasis)>>(), "Subprebases passed to CompositePreBasis does not model the PreBasis concept.");
329 static const bool isBlocked = std::is_same<IndexMergingStrategy,BlockedLexicographic>::value or std::is_same<IndexMergingStrategy,BlockedInterleaved>::value;
331 static const std::size_t maxChildIndexSize = maxHelper(ChildPreBasisFactory::requiredMultiIndexSize...);
336 return CompositePreBasis<MultiIndex, IndexMergingStrategy, std::decay_t<ChildPreBasis>...>(std::forward<ChildPreBasis>(childPreBasis)...);
341 static const std::size_t requiredMultiIndexSize = isBlocked ? (maxChildIndexSize+1) : maxChildIndexSize;
356 return this->makePreBasisFromChildPreBases<MultiIndex>(gridView, childPreBasisFactory.template makePreBasis<MultiIndex>(gridView)...);
399 return Imp::CompositePreBasisFactory<IndexMergingStrategy, std::decay_t<decltype(childPreBasisFactory)>...>(std::forward<decltype(childPreBasisFactory)>(childPreBasisFactory)...);
418 std::enable_if_t<not Concept::isIndexMergingStrategy<typename LastType<Args...>::type>(),int> = 0>
421 return Imp::CompositePreBasisFactory<BasisFactory::BlockedLexicographic, std::decay_t<Args>...>(std::forward<Args>(args)...);
typename std::enable_if< std::is_constructible< T, Args... >::value, int >::type enableIfConstructible
Helper to constrain forwarding constructors.
Definition type_traits.hh:26
STL namespace.
static constexpr bool isIndexMergingStrategy()
Definition basistags.hh:23
decltype(auto) applyPartial(F &&f, ArgTuple &&args, std::integer_sequence< I, i... >)
constexpr void forEach(Range &&range, F &&f)
constexpr decltype(auto) switchCases(const Cases &cases, const Value &value, Branches &&branches, ElseBranch &&elseBranch)
static constexpr size_type M()
static constexpr size_type size()
GridView(const Implementation &imp)
Lexicographic merging of direct children without blocking.
Definition basistags.hh:80
Lexicographic merging of direct children with blocking (i.e. creating one block per direct child).
Definition basistags.hh:148
typename std::tuple_element_t< 0, SubPreBases >::GridView GridView
The grid view that the FE basis is defined on.
Definition compositebasis.hh:65
Node makeNode() const
Create tree node.
Definition compositebasis.hh:133
size_type size() const
Same as size(prefix) with empty prefix.
Definition compositebasis.hh:157
static const std::size_t children
Definition compositebasis.hh:74
Dune::ReservedVector< size_type, MultiIndex::max_size()> SizePrefix
Type used for prefixes handed to the size() method.
Definition compositebasis.hh:90
size_type dimension() const
Get the total dimension of the space spanned by this basis.
Definition compositebasis.hh:215
const SubPreBasis< i > & subPreBasis(Dune::index_constant< i >={}) const
Const access to the stored prebasis of the factor in the power space.
Definition compositebasis.hh:238
std::size_t size_type
Type used for indices and size information.
Definition compositebasis.hh:68
size_type size(const SizePrefix &prefix) const
Return number of possible values for next position in multi index.
Definition compositebasis.hh:163
IndexSet makeIndexSet() const
Create tree node index set.
Definition compositebasis.hh:151
std::make_index_sequence< children > ChildIndices
Definition compositebasis.hh:76
void update(const GridView &gv)
Update the stored grid view, to be called if the grid has changed.
Definition compositebasis.hh:123
CompositePreBasis(SFArgs &&... sfArgs)
Constructor for given child pre-basis objects.
Definition compositebasis.hh:100
Impl::DefaultNodeIndexSet< CompositePreBasis > IndexSet
Type of created tree node index set.
Definition compositebasis.hh:84
IMS IndexMergingStrategy
Strategy used to merge the global indices of the child pre-bases.
Definition compositebasis.hh:71
MI MultiIndex
Type used for global numbering of the basis vectors.
Definition compositebasis.hh:87
size_type maxNodeSize() const
Get the maximal number of DOFs associated to node for any element.
Definition compositebasis.hh:226
SubPreBasis< i > & subPreBasis(Dune::index_constant< i >={})
Mutable access to the stored prebasis of the factor in the power space.
Definition compositebasis.hh:245
CompositeBasisNode< typename SPB::Node... > Node
Template mapping root tree path to type of created tree node.
Definition compositebasis.hh:81
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.
Definition compositebasis.hh:252
void initializeIndices()
Initialize the global indices.
Definition compositebasis.hh:109
const GridView & gridView() const
Obtain the grid view that the basis is defined on.
Definition compositebasis.hh:117
Definition nodes.hh:217
T apply(T... args)
T forward_as_tuple(T... args)
T forward(T... args)
T move(T... args)
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8