4 #ifndef DUNE_PDELAB_POWERGRIDFUNCTIONSPACE_HH
5 #define DUNE_PDELAB_POWERGRIDFUNCTIONSPACE_HH
9 #include <dune/common/shared_ptr.hh>
11 #include <dune/typetree/powernode.hh>
38 template<
typename T, std::size_t k,
40 typename OrderingTag = LexicographicOrderingTag>
42 :
public TypeTree::PowerNode<T,k>
44 PowerGridFunctionSpace<T, k, Backend, OrderingTag>,
45 typename T::Traits::GridViewType,
56 typedef TypeTree::PowerNode<T,k>
BaseT;
62 typename T::Traits::GridViewType,
69 PowerGridFunctionSpace,
75 template<typename,typename>
78 typedef TypeTree::TransformTree<PowerGridFunctionSpace,
79 gfs_to_ordering<PowerGridFunctionSpace>
80 > ordering_transformation;
84 typedef typename ordering_transformation::Type
Ordering;
90 PowerGridFunctionSpace(T& c, const Backend& backend = Backend(), const OrderingTag ordering_tag = OrderingTag())
92 , ImplementationBase(backend,ordering_tag)
97 const Backend&
backend = Backend(),
100 , ImplementationBase(
backend,ordering_tag)
106 const Backend&
backend = Backend(),
109 , ImplementationBase(
backend,ordering_tag)
116 const Backend&
backend = Backend(),
119 , ImplementationBase(
backend,ordering_tag)
127 const Backend&
backend = Backend(),
129 : BaseT(c0,c1,c2,c3,c4)
130 , ImplementationBase(
backend,ordering_tag)
139 const Backend&
backend = Backend(),
141 : BaseT(c0,c1,c2,c3,c4,c5)
142 , ImplementationBase(
backend,ordering_tag)
152 const Backend&
backend = Backend(),
154 : BaseT(c0,c1,c2,c3,c4,c5,c6)
155 , ImplementationBase(
backend,ordering_tag)
166 const Backend&
backend = Backend(),
168 : BaseT(c0,c1,c2,c3,c4,c5,c6,c7)
169 , ImplementationBase(
backend,ordering_tag)
181 const Backend&
backend = Backend(),
183 : BaseT(c0,c1,c2,c3,c4,c5,c6,c7,c8)
184 , ImplementationBase(
backend,ordering_tag)
197 const Backend&
backend = Backend(),
199 : BaseT(c0,c1,c2,c3,c4,c5,c6,c7,c8,c9)
200 , ImplementationBase(
backend,ordering_tag)
203 template<
typename... Children>
206 , ImplementationBase(Backend(),OrderingTag())
215 "Ordering can only be obtained for root space in GridFunctionSpace tree.");
231 "Ordering can only be obtained for root space in GridFunctionSpace tree.");
247 "Ordering can only be obtained for root space in GridFunctionSpace tree.");
263 "Ordering can only be obtained for root space in GridFunctionSpace tree.");
277 void create_ordering()
const
279 _ordering = make_shared<Ordering>(ordering_transformation::transform(*
this));
282 mutable shared_ptr<Ordering> _ordering;
289 #endif // DUNE_PDELAB_POWERGRIDFUNCTIONSPACE_HH
PowerGridFunctionSpace(T &c0, T &c1, T &c2, T &c3, T &c4, const Backend &backend=Backend(), const OrderingTag ordering_tag=OrderingTag())
Definition: powergridfunctionspace.hh:122
PowerGridFunctionSpace(T &c0, T &c1, T &c2, const Backend &backend=Backend(), const OrderingTag ordering_tag=OrderingTag())
Definition: powergridfunctionspace.hh:103
PowerGridFunctionSpace(T &c0, T &c1, T &c2, T &c3, T &c4, T &c5, const Backend &backend=Backend(), const OrderingTag ordering_tag=OrderingTag())
Definition: powergridfunctionspace.hh:133
G GridViewType
the grid view where grid function is defined upon
Definition: powercompositegridfunctionspacebase.hh:45
ordering_transformation::Type Ordering
Definition: powergridfunctionspace.hh:84
base class for tuples of grid function spaces product of identical grid function spaces base class th...
Definition: powergridfunctionspace.hh:41
PowerGridFunctionSpace(T &c0, T &c1, const Backend &backend=Backend(), const OrderingTag ordering_tag=OrderingTag())
Definition: powergridfunctionspace.hh:95
Mixin class providing common functionality of PowerGridFunctionSpace and CompositeGridFunctionSpace.
Definition: powercompositegridfunctionspacebase.hh:65
PowerGridFunctionSpace(shared_ptr< Children >...children)
Definition: powergridfunctionspace.hh:204
OrderingTag OrderingTag
Definition: powercompositegridfunctionspacebase.hh:97
shared_ptr< const Ordering > orderingStorage() const
Direct access to the storage of the DOF ordering.
Definition: powergridfunctionspace.hh:242
Definition: adaptivity.hh:26
Definition: exceptions.hh:34
PowerGridFunctionSpace(T &c0, T &c1, T &c2, T &c3, T &c4, T &c5, T &c6, T &c7, T &c8, T &c9, const Backend &backend=Backend(), const OrderingTag ordering_tag=OrderingTag())
Definition: powergridfunctionspace.hh:187
PowerGridFunctionSpaceTag ImplementationTag
Definition: powergridfunctionspace.hh:54
shared_ptr< Ordering > orderingStorage()
Direct access to the storage of the DOF ordering.
Definition: powergridfunctionspace.hh:258
PowerGridFunctionSpace(T &c0, T &c1, T &c2, T &c3, const Backend &backend=Backend(), const OrderingTag ordering_tag=OrderingTag())
Definition: powergridfunctionspace.hh:112
bool isRootSpace() const
Definition: gridfunctionspacebase.hh:268
PowerGridFunctionSpace(T &c, const Backend &backend=Backend(), const OrderingTag ordering_tag=OrderingTag())
Definition: powergridfunctionspace.hh:90
Traits::Backend & backend()
Definition: gridfunctionspacebase.hh:248
Definition: datahandleprovider.hh:189
PowerGridFunctionSpace(T &c0, T &c1, T &c2, T &c3, T &c4, T &c5, T &c6, T &c7, T &c8, const Backend &backend=Backend(), const OrderingTag ordering_tag=OrderingTag())
Definition: powergridfunctionspace.hh:172
PowerGridFunctionSpace(T &c0, T &c1, T &c2, T &c3, T &c4, T &c5, T &c6, const Backend &backend=Backend(), const OrderingTag ordering_tag=OrderingTag())
Definition: powergridfunctionspace.hh:145
Definition: gridfunctionspace/tags.hh:22
Ordering & ordering()
Direct access to the DOF ordering.
Definition: powergridfunctionspace.hh:226
const Ordering & ordering() const
Direct access to the DOF ordering.
Definition: powergridfunctionspace.hh:210
Trait class for the multi component grid function spaces.
Definition: powercompositegridfunctionspacebase.hh:33
Definition: gridfunctionspacebase.hh:137
void update()
Definition: gridfunctionspacebase.hh:229
TypeTree::PowerNode< T, k > BaseT
Definition: powergridfunctionspace.hh:56
PowerGridFunctionSpace(T &c0, T &c1, T &c2, T &c3, T &c4, T &c5, T &c6, T &c7, const Backend &backend=Backend(), const OrderingTag ordering_tag=OrderingTag())
Definition: powergridfunctionspace.hh:158