3 #ifndef DUNE_PDELAB_GRIDFUNCTIONSPACE_DUNEFUNCTIONSLOCALFUNCTIONSPACE_HH 4 #define DUNE_PDELAB_GRIDFUNCTIONSPACE_DUNEFUNCTIONSLOCALFUNCTIONSPACE_HH 8 #include <dune/common/stdstreams.hh> 10 #include <dune/geometry/referenceelements.hh> 12 #include <dune/localfunctions/common/interfaceswitch.hh> 13 #include <dune/localfunctions/common/localkey.hh> 15 #include <dune/typetree/typetree.hh> 27 namespace Experimental {
29 template<
typename LFS>
31 :
public TypeTree::LeafNode
36 return static_cast<const LFS*
>(
this)->tree().finiteElement();
39 template<
typename Tree>
47 template<
typename GFS,
typename TreePath = TypeTree::Hybr
idTreePath<>>
54 using Basis =
typename GFS::Basis;
56 using Tree = TypeTree::ChildForTreePath<typename LocalView::Tree,TreePath>;
60 template<
typename LFS,
typename C,
typename Tag,
bool fast>
68 using GridView =
typename GFS::Traits::GridView;
79 , _local_view(gfs->basis())
80 , _tree_path(tree_path)
81 , _tree(TypeTree::child(_local_view.tree(),tree_path))
82 , _local_index_set(gfs->basis().localIndexSet())
93 return _local_view.size();
99 return _local_view.maxSize();
105 return _tree.localIndex(index);
110 return _local_index_set.index(_tree.localIndex(index));
119 void bind(
const typename GFS::Traits::EntitySet::template Codim<0>::Entity&
e)
122 _local_index_set.bind(_local_view);
127 return _gfs->constraints();
137 std::shared_ptr<const GFS> _gfs;
146 template<
typename DFBasis,
typename V,
typename CE=NoConstra
ints>
153 template<
typename DFBasis,
typename V,
typename CE,
typename TAG>
172 template<
typename DFBasis,
typename V,
typename CE>
195 #endif // DUNE_PDELAB_GRIDFUNCTIONSPACE_DUNEFUNCTIONSLOCALFUNCTIONSPACE_HH const Entity & e
Definition: localfunctionspace.hh:120
A grid function space.
Definition: gridfunctionspace.hh:166
FiniteElement FiniteElementType
Definition: dunefunctionslocalfunctionspace.hh:43
const GFS & gridFunctionSpace() const
Returns the GridFunctionSpace underlying this LocalFunctionSpace.
Definition: dunefunctionslocalfunctionspace.hh:114
Definition: localfunctionspacetags.hh:40
A pdelab grid function space implemented by a dune-functions function space basis.
Definition: dunefunctionsgridfunctionspace.hh:53
LocalFunctionSpace(std::shared_ptr< const GFS > gfs)
Definition: dunefunctionslocalfunctionspace.hh:162
const Tree & tree() const
Definition: dunefunctionslocalfunctionspace.hh:130
typename Experimental::GridFunctionSpace< DFBasis, V, CE > ::Basis Basis
Definition: dunefunctionslocalfunctionspace.hh:54
LocalFunctionSpace(const GFS &gfs)
Definition: dunefunctionslocalfunctionspace.hh:166
std::size_t SizeType
Definition: dunefunctionslocalfunctionspace.hh:69
const auto & finiteElement() const
Definition: dunefunctionslocalfunctionspace.hh:34
std::size_t size_type
Definition: dunefunctionslocalfunctionspace.hh:75
typename GFS::Traits::GridView GridView
Definition: dunefunctionslocalfunctionspace.hh:68
LocalFunctionSpace(std::shared_ptr< const GFS > gfs, TreePath tree_path=TreePath(), size_type offset=0)
Definition: dunefunctionslocalfunctionspace.hh:77
const std::size_t offset
Definition: localfunctionspace.hh:74
typename Basis::LocalView LocalView
Definition: dunefunctionslocalfunctionspace.hh:55
typename Tree::FiniteElement FiniteElement
Definition: dunefunctionslocalfunctionspace.hh:42
typename Basis::MultiIndex DOFIndex
Definition: dunefunctionslocalfunctionspace.hh:70
size_type maxSize() const
Definition: dunefunctionslocalfunctionspace.hh:96
typename Basis::MultiIndex DOFIndex
Definition: dunefunctionslocalfunctionspace.hh:58
size_type size() const
get current size
Definition: dunefunctionslocalfunctionspace.hh:91
GFS GridFunctionSpace
Definition: dunefunctionslocalfunctionspace.hh:67
For backward compatibility – Do not use this!
Definition: adaptivity.hh:28
LocalFunctionSpace(std::shared_ptr< const GFS > gfs)
Definition: dunefunctionslocalfunctionspace.hh:181
Definition: dunefunctionslocalfunctionspace.hh:48
DOFIndex dofIndex(size_type index) const
Definition: dunefunctionslocalfunctionspace.hh:108
typename Basis::LocalIndexSet LocalIndexSet
Definition: dunefunctionslocalfunctionspace.hh:57
TypeTree::ChildForTreePath< typename LocalView::Tree, TypeTree::HybridTreePath<> > Tree
Definition: dunefunctionslocalfunctionspace.hh:56
typename GFS::Traits::ConstraintsType ConstraintsType
Definition: dunefunctionslocalfunctionspace.hh:71
void bind(const typename GFS::Traits::EntitySet::template Codim< 0 >::Entity &e)
Definition: dunefunctionslocalfunctionspace.hh:119
Definition: lfsindexcache.hh:244
size_type localIndex(size_type index) const
map index in this local function space to root local function space
Definition: dunefunctionslocalfunctionspace.hh:103
const Traits::ConstraintsType & constraints() const
Definition: dunefunctionslocalfunctionspace.hh:125
Definition: dunefunctionslocalfunctionspace.hh:40
Create a local function space from a global function space.
Definition: localfunctionspace.hh:698
LocalFunctionSpace(const GFS &gfs)
Definition: dunefunctionslocalfunctionspace.hh:185
std::size_t index
Definition: interpolate.hh:118
size_type subSpaceDepth() const
Definition: dunefunctionslocalfunctionspace.hh:85
Definition: dunefunctionslocalfunctionspace.hh:63
Definition: dunefunctionslocalfunctionspace.hh:30