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,
75 template<typename,typename>
78 typedef TypeTree::TransformTree<PowerGridFunctionSpace,
79 gfs_to_ordering<PowerGridFunctionSpace>
80 > ordering_transformation;
84 typedef typename ordering_transformation::Type
Ordering;
97 const Backend&
backend = Backend(),
106 const Backend&
backend = Backend(),
116 const Backend&
backend = Backend(),
127 const Backend&
backend = Backend(),
129 :
BaseT(c0,c1,c2,c3,c4)
139 const Backend&
backend = Backend(),
141 :
BaseT(c0,c1,c2,c3,c4,c5)
152 const Backend&
backend = Backend(),
154 :
BaseT(c0,c1,c2,c3,c4,c5,c6)
166 const Backend&
backend = Backend(),
168 :
BaseT(c0,c1,c2,c3,c4,c5,c6,c7)
181 const Backend&
backend = Backend(),
183 :
BaseT(c0,c1,c2,c3,c4,c5,c6,c7,c8)
197 const Backend&
backend = Backend(),
199 :
BaseT(c0,c1,c2,c3,c4,c5,c6,c7,c8,c9)
203 template<
typename... Children>
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, const Backend &backend=Backend(), const OrderingTag ordering_tag=OrderingTag())
Definition: powergridfunctionspace.hh:103
PowerGridFunctionSpace(T &c0, T &c1, const Backend &backend=Backend(), const OrderingTag ordering_tag=OrderingTag())
Definition: powergridfunctionspace.hh:95
PowerGridFunctionSpace(shared_ptr< Children >...children)
Definition: powergridfunctionspace.hh:204
PowerGridFunctionSpaceTag ImplementationTag
Definition: powergridfunctionspace.hh:54
shared_ptr< const Ordering > orderingStorage() const
Direct access to the storage of the DOF ordering.
Definition: powergridfunctionspace.hh:242
Definition: gridfunctionspace/tags.hh:22
TypeTree::PowerNode< T, k > BaseT
Definition: powergridfunctionspace.hh:56
ordering_transformation::Type Ordering
Definition: powergridfunctionspace.hh:84
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
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: gridfunctionspacebase.hh:137
PowerGridFunctionSpace(T &c, const Backend &backend=Backend(), const OrderingTag ordering_tag=OrderingTag())
Definition: powergridfunctionspace.hh:90
shared_ptr< Ordering > orderingStorage()
Direct access to the storage of the DOF ordering.
Definition: powergridfunctionspace.hh:258
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, 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
bool isRootSpace() const
Definition: gridfunctionspacebase.hh:268
OrderingTag OrderingTag
Definition: powercompositegridfunctionspacebase.hh:97
Ordering & ordering()
Direct access to the DOF ordering.
Definition: powergridfunctionspace.hh:226
G GridViewType
the grid view where grid function is defined upon
Definition: powercompositegridfunctionspacebase.hh:45
Traits::Backend & backend()
Definition: gridfunctionspacebase.hh:248
Definition: datahandleprovider.hh:189
Mixin class providing common functionality of PowerGridFunctionSpace and CompositeGridFunctionSpace.
Definition: powercompositegridfunctionspacebase.hh:65
const Ordering & ordering() const
Direct access to the DOF ordering.
Definition: powergridfunctionspace.hh:210
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, T &c3, const Backend &backend=Backend(), const OrderingTag ordering_tag=OrderingTag())
Definition: powergridfunctionspace.hh:112
void update()
Definition: gridfunctionspacebase.hh:229
Definition: exceptions.hh:34
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
Trait class for the multi component grid function spaces.
Definition: powercompositegridfunctionspacebase.hh:33
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