3 #ifndef DUNE_PDELAB_GRIDFUNCTIONSPACE_SUBSPACELOCALFUNCTIONSPACE_HH
4 #define DUNE_PDELAB_GRIDFUNCTIONSPACE_SUBSPACELOCALFUNCTIONSPACE_HH
26 void extract_tree_path_elements(TypeTree::StaticTreePath<>, It it)
31 template<
typename TP,
typename It>
32 void extract_tree_path_elements(TP, It it)
35 extract_tree_path_elements(
typename TypeTree::TreePathPopBack<TP>::type(),++it);
44 template<
typename GFS,
typename LFS>
45 class SubSpaceLocalFunctionSpaceNode
51 typedef typename LFS::Traits Traits;
53 template<
typename... T>
54 SubSpaceLocalFunctionSpaceNode(T&&... t)
55 : LFS(std::forward<T>(t)...)
57 extract_tree_path_elements(
typename GFS::SubSpacePath(),_tree_path.begin());
65 for (
auto di= this->_dof_index_storage.begin(), end=this->_dof_index_storage.end();
67 complete_dof_index(*di);
70 std::size_t subSpaceDepth()
const
72 return this->gridFunctionSpace().subSpaceDepth();
78 void complete_dof_index(
typename Traits::DOFIndex& di)
const
80 std::copy(_tree_path.begin(),_tree_path.end(),std::back_inserter(di.treeIndex()));
88 template<
typename GFS,
typename TreePath>
96 template <
typename BaseGFS,
typename SubSpaceTreePath>
98 :
public gfs::SubSpaceLocalFunctionSpaceNode<gfs::GridFunctionSubSpace<BaseGFS,SubSpaceTreePath>,
99 typename TypeTree::TransformTree<
100 gfs::GridFunctionSubSpace<BaseGFS,SubSpaceTreePath>,
101 gfs_to_lfs<gfs::GridFunctionSubSpace<
110 typedef gfs::GridFunctionSubSpace<BaseGFS,SubSpaceTreePath> GFS;
112 typedef gfs::SubSpaceLocalFunctionSpaceNode<
114 typename TypeTree::TransformTree<
126 template<
typename,
bool>
129 template<
typename,
bool>
135 : BaseT(TypeTree::TransformTree<GFS,gfs_to_lfs<GFS> >::transform(gfs))
142 : BaseT(*TypeTree::TransformTree<GFS,gfs_to_lfs<GFS> >::transform_storage(
pgfs))
const Entity & e
Definition: localfunctionspace.hh:121
gfs::GridFunctionSubSpace< GFS, TreePath > GridFunctionSubSpace
Non-nesting implementation of GridFunctionSubSpace.
Definition: subspace.hh:569
For backward compatibility – Do not use this!
Definition: adaptivity.hh:28
Traits::DOFIndexContainer _dof_index_storage
Definition: localfunctionspace.hh:293
Traits::DOFIndexContainer * _dof_indices
Definition: localfunctionspace.hh:294
void setup(NodeType &node)
Definition: localfunctionspace.hh:286
std::shared_ptr< GFS const > pgfs
Definition: localfunctionspace.hh:292
friend struct ClearSizeVisitor
Definition: localfunctionspace.hh:726
friend struct ComputeSizeVisitor
Definition: localfunctionspace.hh:729
LocalFunctionSpace(const GFS &gfs)
Definition: localfunctionspace.hh:737
friend struct FillIndicesVisitor
Definition: localfunctionspace.hh:732
friend struct PropagateGlobalStorageVisitor
Definition: localfunctionspace.hh:723
static const unsigned int value
Definition: gridfunctionspace/tags.hh:139