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,
69 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
PowerCompositeGridFunctionSpaceTraits< GV, B, O, k > Traits
export traits class
Definition powercompositegridfunctionspacebase.hh:92
void update(bool force=false)
Update the indexing information of the GridFunctionSpace.
Definition gridfunctionspacebase.hh:205
O OrderingTag
Definition powercompositegridfunctionspacebase.hh:100
bool isRootSpace() const
Definition gridfunctionspacebase.hh:246
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
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 & ordering()
Direct access to the DOF ordering.
Definition powergridfunctionspace.hh:254
ordering_transformation::Type Ordering
Definition powergridfunctionspace.hh:83
PowerGridFunctionSpaceTag ImplementationTag
Definition powergridfunctionspace.hh:53
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
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
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
const Ordering & ordering() const
Direct access to the DOF ordering.
Definition powergridfunctionspace.hh:238
std::shared_ptr< Ordering > orderingStorage()
Direct access to the storage of the DOF ordering.
Definition powergridfunctionspace.hh:286
extract type for storing constraints
Definition powergridfunctionspace.hh:88
std::conditional< std::is_same< typenameT::templateConstraintsContainer< E >::Type, EmptyTransformation >::value, EmptyTransformation, ConstraintsTransformation< typenameOrdering::Traits::DOFIndex, typenameOrdering::Traits::ContainerIndex, E > >::type Type
Definition powergridfunctionspace.hh:100
Definition gridfunctionspace/tags.hh:26
static const unsigned int value
Definition gridfunctionspace/tags.hh:139