7#ifndef DUNE_FUNCTIONS_FUNCTIONSPACEBASES_DEFAULTLOCALVIEW_HH
8#define DUNE_FUNCTIONS_FUNCTIONSPACEBASES_DEFAULTLOCALVIEW_HH
14#include <dune/common/concept.hh>
15#include <dune/common/hybridutilities.hh>
16#include <dune/common/reservedvector.hh>
39 using GridView =
typename GlobalBasis::GridView;
42 using Element =
typename GridView::template Codim<0>::Entity;
48 using Tree =
typename GlobalBasis::PreBasis::Node;
52 using PreBasis =
typename GlobalBasis::PreBasis;
58 std::conditional_t<(PreBasis::minMultiIndexSize == PreBasis::maxMultiIndexSize),
60 Dune::ReservedVector<size_type, PreBasis::multiIndexBufferSize>>;
66 std::conditional_t<(PreBasis::minMultiIndexSize == PreBasis::maxMultiIndexSize),
68 Dune::ReservedVector<size_type, PreBasis::multiIndexBufferSize>>;
76 static_assert(models<Concept::BasisTree<GridView>,
Tree>(),
"Tree type passed to DefaultLocalView does not model the BasisNode concept.");
Definition polynomial.hh:17
void bindTree(Tree &tree, const Entity &entity, std::size_t offset=0)
Definition nodes.hh:286
void initializeTree(Tree &tree, std::size_t treeIndexOffset=0)
Definition nodes.hh:293
A statically sized MultiIndex type.
Definition multiindex.hh:29
A dynamically sized array-like class with overflow.
Definition overflowarray.hh:49
The restriction of a finite element basis to a single element.
Definition defaultlocalview.hh:32
typename GlobalBasis::PreBasis PreBasis
Definition defaultlocalview.hh:52
void unbind()
Unbind from the current element.
Definition defaultlocalview.hh:113
bool bound() const
Return if the view is bound to a grid element.
Definition defaultlocalview.hh:95
typename GlobalBasis::GridView GridView
The grid view the global FE basis lives on.
Definition defaultlocalview.hh:39
const MultiIndex & index(size_type i) const
Maps from subtree index set [0..size-1] to a globally unique multi index in global basis.
Definition defaultlocalview.hh:146
std::optional< Element > element_
Definition defaultlocalview.hh:165
typename GridView::template Codim< 0 >::Entity Element
Type of the grid element we are bound to.
Definition defaultlocalview.hh:42
const Tree & tree() const
Return the local ansatz tree associated to the bound entity.
Definition defaultlocalview.hh:122
void bind(const Element &e)
Bind the view to a grid element.
Definition defaultlocalview.hh:85
const Element & element() const
Return the grid element that the view is bound to.
Definition defaultlocalview.hh:104
size_type size() const
Total number of degrees of freedom on this element.
Definition defaultlocalview.hh:129
GB GlobalBasis
The global FE basis that this is a view on.
Definition defaultlocalview.hh:36
Tree tree_
Definition defaultlocalview.hh:166
size_type maxSize() const
Maximum local size for any element on the GridView.
Definition defaultlocalview.hh:140
std::size_t size_type
The type used for sizes.
Definition defaultlocalview.hh:45
const DefaultLocalView & rootLocalView() const
Definition defaultlocalview.hh:158
std::conditional_t<(PreBasis::minMultiIndexSize==PreBasis::maxMultiIndexSize), OverflowArray< StaticMultiIndex< size_type, PreBasis::maxMultiIndexSize >, PreBasis::multiIndexBufferSize >, Dune::ReservedVector< size_type, PreBasis::multiIndexBufferSize > > MultiIndexStorage
Definition defaultlocalview.hh:60
std::conditional_t<(PreBasis::minMultiIndexSize==PreBasis::maxMultiIndexSize), StaticMultiIndex< size_type, PreBasis::maxMultiIndexSize >, Dune::ReservedVector< size_type, PreBasis::multiIndexBufferSize > > MultiIndex
Type used for global numbering of the basis vectors.
Definition defaultlocalview.hh:68
std::vector< MultiIndexStorage > indices_
Definition defaultlocalview.hh:167
typename GlobalBasis::PreBasis::Node Tree
Tree of local finite elements / local shape function sets.
Definition defaultlocalview.hh:48
DefaultLocalView(const GlobalBasis &globalBasis)
Construct local view for a given global finite element basis.
Definition defaultlocalview.hh:72
const GlobalBasis * globalBasis_
Definition defaultlocalview.hh:164
const GlobalBasis & globalBasis() const
Return the global basis that we are a view on.
Definition defaultlocalview.hh:153