dune-pdelab  2.7-git
powercompositegridfunctionspacebase.hh
Go to the documentation of this file.
1 // -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 // vi: set et ts=4 sw=2 sts=2:
3 #ifndef DUNE_PDELAB_GRIDFUNCTIONSPACE_POWERCOMPOSITEGRIDFUNCTIONSPACEBASE_HH
4 #define DUNE_PDELAB_GRIDFUNCTIONSPACE_POWERCOMPOSITEGRIDFUNCTIONSPACEBASE_HH
5 
6 #include <algorithm>
7 #include <cstddef>
8 #include <functional>
9 #include <vector>
10 
11 #include <dune/typetree/fixedcapacitystack.hh>
12 #include <dune/typetree/traversal.hh>
13 #include <dune/typetree/traversalutilities.hh>
14 #include <dune/typetree/utility.hh>
15 #include <dune/typetree/transformation.hh>
16 #include <dune/typetree/visitor.hh>
17 
24 
25 namespace Dune {
26  namespace PDELab {
27 
31 
33  template<typename G, typename B, typename O, std::size_t k>
35  {
36  enum{
41  };
42 
43  const static std::size_t CHILDREN = k;
44 
45  using EntitySet = G;
46 
47  using GridView = typename EntitySet::GridView;
48 
51 
53  typedef B BackendType;
54 
55  typedef B Backend;
56 
58  typedef O MapperType;
59 
60  typedef O OrderingTag;
61 
63  typedef typename B::size_type SizeType;
64  };
65 
67  template<typename GridFunctionSpace, typename GV, typename B, typename O, std::size_t k>
69  : public GridFunctionSpaceBase<
70  GridFunctionSpace,
71  PowerCompositeGridFunctionSpaceTraits<GV,B,O,k>
72  >
73  {
74 
75 #ifndef DOXYGEN
76 
77  const GridFunctionSpace& gfs() const
78  {
79  return static_cast<const GridFunctionSpace&>(*this);
80  }
81 
82  GridFunctionSpace& gfs()
83  {
84  return static_cast<GridFunctionSpace&>(*this);
85  }
86 
87 #endif // DOXYGEN
88 
89  public:
90 
93 
94  private:
95 
97 
98  public:
99 
100  typedef O OrderingTag;
101 
103  const typename Traits::GridView& gridView () const
104  {
105  return gfs().template child<0>().gridView();
106  }
107 
109  const typename Traits::EntitySet& entitySet () const
110  {
111  return gfs().template child<0>().entitySet();
112  }
113 
115  : BaseT(backend,ordering_tag)
116  {}
117 
118  };
119 
120  }
121 
122 }
124 #endif // DUNE_PDELAB_GRIDFUNCTIONSPACE_POWERCOMPOSITEGRIDFUNCTIONSPACEBASE_HH
Dune::PDELab::PowerCompositeGridFunctionSpaceBase
Mixin class providing common functionality of PowerGridFunctionSpace and CompositeGridFunctionSpace.
Definition: powercompositegridfunctionspacebase.hh:68
Dune::PDELab::PowerCompositeGridFunctionSpaceTraits::Backend
B Backend
Definition: powercompositegridfunctionspacebase.hh:55
Dune::PDELab::PowerCompositeGridFunctionSpaceTraits::GridViewType
GridView GridViewType
the grid view where grid function is defined upon
Definition: powercompositegridfunctionspacebase.hh:50
Dune::PDELab::PowerCompositeGridFunctionSpaceTraits
Trait class for the multi component grid function spaces.
Definition: powercompositegridfunctionspacebase.hh:34
Dune::PDELab::PowerCompositeGridFunctionSpaceTraits::noChilds
@ noChilds
number of child spaces
Definition: powercompositegridfunctionspacebase.hh:40
Dune::PDELab::PowerCompositeGridFunctionSpaceTraits::BackendType
B BackendType
vector backend
Definition: powercompositegridfunctionspacebase.hh:53
Dune::PDELab::PowerCompositeGridFunctionSpaceBase::gridView
const Traits::GridView & gridView() const
get grid view
Definition: powercompositegridfunctionspacebase.hh:103
Dune::PDELab::LexicographicOrderingTag
Indicate lexicographic ordering of the unknowns of non-leaf grid function spaces.
Definition: gridfunctionspace/tags.hh:63
Dune
For backward compatibility – Do not use this!
Definition: adaptivity.hh:28
constraintstransformation.hh
Dune::PDELab::GridFunctionSpaceBase< GridFunctionSpace, PowerCompositeGridFunctionSpaceTraits< GV, B, O, k > >::backend
Traits::Backend & backend()
Definition: gridfunctionspacebase.hh:226
Dune::PDELab::GridFunctionSpaceBase
Definition: gridfunctionspacebase.hh:134
entityblockedlocalordering.hh
tags.hh
Dune::PDELab::PowerCompositeGridFunctionSpaceTraits::SizeType
B::size_type SizeType
short cut for size type exported by Backend
Definition: powercompositegridfunctionspacebase.hh:63
Dune::PDELab::PowerCompositeGridFunctionSpaceTraits::MapperType
O MapperType
mapper
Definition: powercompositegridfunctionspacebase.hh:58
Dune::PDELab::PowerCompositeGridFunctionSpaceBase::entitySet
const Traits::EntitySet & entitySet() const
get grid view partition
Definition: powercompositegridfunctionspacebase.hh:109
Dune::PDELab::GridFunctionSpace
A grid function space.
Definition: gridfunctionspace.hh:178
gridfunctionspacebase.hh
Dune::PDELab::PowerCompositeGridFunctionSpaceTraits::CHILDREN
const static std::size_t CHILDREN
Definition: powercompositegridfunctionspacebase.hh:43
Dune::PDELab::PowerCompositeGridFunctionSpaceTraits::GridView
typename EntitySet::GridView GridView
Definition: powercompositegridfunctionspacebase.hh:47
noconstraints.hh
Dune::PDELab::PowerCompositeGridFunctionSpaceTraits::OrderingTag
O OrderingTag
Definition: powercompositegridfunctionspacebase.hh:60
Dune::PDELab::PowerCompositeGridFunctionSpaceBase::Traits
PowerCompositeGridFunctionSpaceTraits< GV, B, O, k > Traits
export traits class
Definition: powercompositegridfunctionspacebase.hh:92
Dune::PDELab::PowerCompositeGridFunctionSpaceBase::OrderingTag
O OrderingTag
Definition: powercompositegridfunctionspacebase.hh:100
Dune::PDELab::PowerCompositeGridFunctionSpaceBase::PowerCompositeGridFunctionSpaceBase
PowerCompositeGridFunctionSpaceBase(const B &backend, const OrderingTag &ordering_tag)
Definition: powercompositegridfunctionspacebase.hh:114
Dune::PDELab::PowerCompositeGridFunctionSpaceTraits::isComposite
@ isComposite
True if this grid function space is composed of others.
Definition: powercompositegridfunctionspacebase.hh:38
lexicographicordering.hh
Dune::PDELab::PowerCompositeGridFunctionSpaceTraits::EntitySet
G EntitySet
Definition: powercompositegridfunctionspacebase.hh:45