3#ifndef DUNE_PDELAB_GRIDFUNCTIONSPACE_SUBSPACELOCALFUNCTIONSPACE_HH 
    4#define DUNE_PDELAB_GRIDFUNCTIONSPACE_SUBSPACELOCALFUNCTIONSPACE_HH 
   13#include <dune/pdelab/gridfunctionspace/gridfunctionspace.hh> 
   14#include <dune/pdelab/gridfunctionspace/localfunctionspace.hh> 
   27      template<
typename GFS, 
typename LFS>
 
   28      class SubSpaceLocalFunctionSpaceNode
 
   34        typedef typename LFS::Traits Traits;
 
   36        template<
typename... T>
 
   37        SubSpaceLocalFunctionSpaceNode(T&&... t)
 
   38          : LFS(
std::forward<T>(t)...) 
 
   41        template<
typename... T>
 
   42        SubSpaceLocalFunctionSpaceNode(
typename GFS::SubSpacePath tp, T&&... t)
 
   43          : LFS(
std::forward<T>(t)...), _tree_path(tp)
 
   51          for (
auto && dof_idx : this->_dof_index_storage)
 
   59        std::size_t subSpaceDepth()
 const 
   61          return this->gridFunctionSpace().subSpaceDepth();
 
   65        typename GFS::SubSpacePath _tree_path;
 
   69      template<
typename GFS, 
typename TreePath>
 
   77    template <
typename BaseGFS, 
typename SubSpaceTreePath>
 
   79      : 
public gfs::SubSpaceLocalFunctionSpaceNode<gfs::GridFunctionSubSpace<BaseGFS,SubSpaceTreePath>,
 
   80                                                   typename TypeTree::TransformTree<
 
   81                                                     gfs::GridFunctionSubSpace<BaseGFS,SubSpaceTreePath>,
 
   82                                                     gfs_to_lfs<gfs::GridFunctionSubSpace<
 
   91      typedef gfs::GridFunctionSubSpace<BaseGFS,SubSpaceTreePath> GFS;
 
   93      typedef gfs::SubSpaceLocalFunctionSpaceNode<
 
   95        typename TypeTree::TransformTree<
 
  102      friend struct PropagateGlobalStorageVisitor;
 
  105      friend struct ClearSizeVisitor;
 
  107      template<
typename,
bool>
 
  108      friend struct ComputeSizeVisitor;
 
  110      template<
typename,
bool>
 
  111      friend struct FillIndicesVisitor;
 
  115      LocalFunctionSpace(
const GFS & gfs)
 
  116        : BaseT(TypeTree::TransformTree<GFS,gfs_to_lfs<GFS> >::transform(gfs))
 
  118        this->_dof_indices = &(this->_dof_index_storage);
 
  122      LocalFunctionSpace(std::shared_ptr<const GFS> pgfs)
 
  123        : BaseT(*TypeTree::TransformTree<GFS,gfs_to_lfs<GFS> >::transform_storage(pgfs))
 
  125        this->_dof_indices = &(this->_dof_index_storage);
 
  129      LocalFunctionSpace(
const LocalFunctionSpace & lfs)
 
  135        this->_dof_indices = &(this->_dof_index_storage);
 
gfs::GridFunctionSubSpace< GFS, TreePath > GridFunctionSubSpace
Non-nesting implementation of GridFunctionSubSpace.
Definition: subspace.hh:592
 
constexpr void forEach(Range &&range, F &&f)
Range based for loop.
Definition: hybridutilities.hh:257
 
Dune namespace.
Definition: alignedallocator.hh:13
 
constexpr std::integer_sequence< T, II..., T(IN)> push_back(std::integer_sequence< T, II... >, std::integral_constant< T, IN >={})
Append an index IN to the back of the sequence.
Definition: integersequence.hh:69
 
constexpr auto reverse(const HybridMultiIndex< T... > &tp)
Reverses the order of the elements in the multi-index.
Definition: hybridmultiindex.hh:361