3 #ifndef DUNE_PDELAB_GRIDFUNCTIONSPACE_SUBSPACELOCALFUNCTIONSPACE_HH
4 #define DUNE_PDELAB_GRIDFUNCTIONSPACE_SUBSPACELOCALFUNCTIONSPACE_HH
25 void extract_tree_path_elements(TypeTree::TreePath<>, It it)
30 template<
typename TP,
typename It>
31 void extract_tree_path_elements(TP, It it)
34 extract_tree_path_elements(
typename TypeTree::TreePathPopBack<TP>::type(),++it);
43 template<
typename GFS,
typename LFS>
44 class SubSpaceLocalFunctionSpaceNode
50 typedef typename LFS::Traits Traits;
52 template<
typename... T>
53 SubSpaceLocalFunctionSpaceNode(T&&... t)
54 : LFS(std::forward<T>(t)...)
56 extract_tree_path_elements(
typename GFS::SubSpacePath(),_tree_path.begin());
64 for (
auto di= this->_dof_index_storage.begin(), end=this->_dof_index_storage.end();
66 complete_dof_index(*di);
69 std::size_t subSpaceDepth()
const
71 return this->gridFunctionSpace().subSpaceDepth();
77 void complete_dof_index(
typename Traits::DOFIndex& di)
const
79 std::copy(_tree_path.begin(),_tree_path.end(),std::back_inserter(di.treeIndex()));
87 template<
typename GFS,
typename TreePath>
88 class GridFunctionSubSpace;
96 template <
typename BaseGFS,
typename SubSpaceTreePath>
97 class LocalFunctionSpace<gfs::GridFunctionSubSpace<BaseGFS,SubSpaceTreePath>, AnySpaceTag>
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<
135 : BaseT(TypeTree::TransformTree<GFS,gfs_to_lfs<GFS> >::transform(gfs))
142 : BaseT(TypeTree::TransformTree<GFS,gfs_to_lfs<GFS> >::transform_storage(pgfs))
165 #endif // DUNE_PDELAB_GRIDFUNCTIONSPACE_SUBSPACELOCALFUNCTIONSPACE_HH
friend struct ComputeSizeVisitor
Definition: localfunctionspace.hh:732
void setup(NodeType &node)
Definition: localfunctionspace.hh:271
friend struct FillIndicesVisitor
Definition: localfunctionspace.hh:735
shared_ptr< GFS const > pgfs
Definition: localfunctionspace.hh:277
LocalFunctionSpace(const GFS &gfs)
Definition: localfunctionspace.hh:740
static const unsigned int value
Definition: gridfunctionspace/tags.hh:175
Traits::DOFIndexContainer * _dof_indices
Definition: localfunctionspace.hh:279
Traits::DOFIndexContainer _dof_index_storage
Definition: localfunctionspace.hh:278
friend struct PropagateGlobalStorageVisitor
Definition: localfunctionspace.hh:726
friend struct ClearSizeVisitor
Definition: localfunctionspace.hh:729
const E & e
Definition: interpolate.hh:172