4 #ifndef DUNE_PDELAB_GRIDFUNCTIONSPACE_POWERGRIDFUNCTIONSPACE_HH
5 #define DUNE_PDELAB_GRIDFUNCTIONSPACE_POWERGRIDFUNCTIONSPACE_HH
10 #include <dune/typetree/powernode.hh>
37 template<
typename T, std::size_t k,
39 typename OrderingTag = LexicographicOrderingTag>
41 :
public TypeTree::PowerNode<T,k>
43 PowerGridFunctionSpace<T, k, Backend, OrderingTag>,
44 typename T::Traits::EntitySet,
55 typedef TypeTree::PowerNode<T,k>
BaseT;
61 typename T::Traits::EntitySet,
74 template<typename,typename>
77 typedef TypeTree::TransformTree<PowerGridFunctionSpace,
78 gfs_to_ordering<PowerGridFunctionSpace>
79 > ordering_transformation;
83 typedef typename ordering_transformation::Type
Ordering;
89 typedef typename std::conditional<
96 typename Ordering::Traits::DOFIndex,
97 typename Ordering::Traits::ContainerIndex,
125 const Backend&
backend = Backend(),
134 const Backend&
backend = Backend(),
144 const Backend&
backend = Backend(),
155 const Backend&
backend = Backend(),
157 : BaseT(c0,c1,c2,c3,c4)
167 const Backend&
backend = Backend(),
169 : BaseT(c0,c1,c2,c3,c4,c5)
180 const Backend&
backend = Backend(),
182 : BaseT(c0,c1,c2,c3,c4,c5,c6)
194 const Backend&
backend = Backend(),
196 : BaseT(c0,c1,c2,c3,c4,c5,c6,c7)
209 const Backend&
backend = Backend(),
211 : BaseT(c0,c1,c2,c3,c4,c5,c6,c7,c8)
225 const Backend&
backend = Backend(),
227 : BaseT(c0,c1,c2,c3,c4,c5,c6,c7,c8,c9)
231 template<
typename Child0,
typename... Children>
233 : BaseT(child0, children...)
243 "Ordering can only be obtained for root space in GridFunctionSpace tree.");
259 "Ordering can only be obtained for root space in GridFunctionSpace tree.");
275 "Ordering can only be obtained for root space in GridFunctionSpace tree.");
291 "Ordering can only be obtained for root space in GridFunctionSpace tree.");
305 void create_ordering()
const
307 _ordering = std::make_shared<Ordering>(ordering_transformation::transform(*
this));
310 mutable std::shared_ptr<Ordering> _ordering;
Traits::Backend & backend()
Definition: gridfunctionspacebase.hh:226
void update(bool force=false)
Update the indexing information of the GridFunctionSpace.
Definition: gridfunctionspacebase.hh:205
LexicographicOrderingTag OrderingTag
Definition: powercompositegridfunctionspacebase.hh:100
bool isRootSpace() const
Definition: gridfunctionspacebase.hh:246
G EntitySet
Definition: powercompositegridfunctionspacebase.hh:45
For backward compatibility – Do not use this!
Definition: adaptivity.hh:28
Definition: exceptions.hh:36
a class holding transformation for constrained spaces
Definition: constraintstransformation.hh:20
Definition: constraintstransformation.hh:112
Definition: datahandleprovider.hh:189
Definition: gridfunctionspacebase.hh:136
Trait class for the multi component grid function spaces.
Definition: powercompositegridfunctionspacebase.hh:35
Mixin class providing common functionality of PowerGridFunctionSpace and CompositeGridFunctionSpace.
Definition: powercompositegridfunctionspacebase.hh:73
base class for tuples of grid function spaces product of identical grid function spaces base class th...
Definition: powergridfunctionspace.hh:49
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:200
ordering_transformation::Type Ordering
Definition: powergridfunctionspace.hh:83
PowerGridFunctionSpaceTag ImplementationTag
Definition: powergridfunctionspace.hh:53
Ordering & ordering()
Direct access to the DOF ordering.
Definition: powergridfunctionspace.hh:254
PowerGridFunctionSpace(const std::array< std::shared_ptr< T >, k > &container, const Backend &backend=Backend(), const OrderingTag ordering_tag=OrderingTag())
Construct a new Power Grid Function Space object.
Definition: powergridfunctionspace.hh:113
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:173
PowerGridFunctionSpace(std::shared_ptr< Child0 > child0, std::shared_ptr< Children >... children)
Definition: powergridfunctionspace.hh:232
PowerGridFunctionSpace(T &c0, T &c1, T &c2, T &c3, const Backend &backend=Backend(), const OrderingTag ordering_tag=OrderingTag())
Definition: powergridfunctionspace.hh:140
std::shared_ptr< Ordering > orderingStorage()
Direct access to the storage of the DOF ordering.
Definition: powergridfunctionspace.hh:286
PowerGridFunctionSpace(T &c0, T &c1, const Backend &backend=Backend(), const OrderingTag ordering_tag=OrderingTag())
Definition: powergridfunctionspace.hh:123
PowerGridFunctionSpace(T &c, const Backend &backend=Backend(), const OrderingTag ordering_tag=OrderingTag())
Definition: powergridfunctionspace.hh:118
std::shared_ptr< const Ordering > orderingStorage() const
Direct access to the storage of the DOF ordering.
Definition: powergridfunctionspace.hh:270
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:215
PowerGridFunctionSpace(T &c0, T &c1, T &c2, const Backend &backend=Backend(), const OrderingTag ordering_tag=OrderingTag())
Definition: powergridfunctionspace.hh:131
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:186
TypeTree::PowerNode< T, k > BaseT
Definition: powergridfunctionspace.hh:55
const Ordering & ordering() const
Direct access to the DOF ordering.
Definition: powergridfunctionspace.hh:238
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:161
ImplementationBase::Traits Traits
export traits class
Definition: powergridfunctionspace.hh:104
PowerGridFunctionSpace(T &c0, T &c1, T &c2, T &c3, T &c4, const Backend &backend=Backend(), const OrderingTag ordering_tag=OrderingTag())
Definition: powergridfunctionspace.hh:150
extract type for storing constraints
Definition: powergridfunctionspace.hh:88
std::conditional< std::is_same< typename T::template ConstraintsContainer< E >::Type, EmptyTransformation >::value, EmptyTransformation, ConstraintsTransformation< typename Ordering::Traits::DOFIndex, typename Ordering::Traits::ContainerIndex, E > >::type Type
Definition: powergridfunctionspace.hh:100
Definition: gridfunctionspace/tags.hh:26
Indicate lexicographic ordering of the unknowns of non-leaf grid function spaces.
Definition: gridfunctionspace/tags.hh:63
static const unsigned int value
Definition: gridfunctionspace/tags.hh:139