4 #ifndef DUNE_PDELAB_GRIDFUNCTIONSPACE_COMPOSITEGRIDFUNCTIONSPACE_HH 5 #define DUNE_PDELAB_GRIDFUNCTIONSPACE_COMPOSITEGRIDFUNCTIONSPACE_HH 9 #include <dune/typetree/compositenode.hh> 10 #include <dune/typetree/utility.hh> 37 template<
typename Backend,
41 :
public TypeTree::CompositeNode<Children...>
43 CompositeGridFunctionSpace<
47 typename TypeTree::Child<TypeTree::CompositeNode<Children...>,0>::Traits::EntitySet,
52 ,
public DataHandleProvider<CompositeGridFunctionSpace<Backend,OrderingTag,Children...> >
54 typedef TypeTree::CompositeNode<Children...> NodeT;
58 typename TypeTree::Child<NodeT,0>::Traits::EntitySet,
64 CompositeGridFunctionSpace,
70 typedef TypeTree::TransformTree<CompositeGridFunctionSpace,
71 gfs_to_ordering<CompositeGridFunctionSpace>
72 > ordering_transformation;
74 template<typename,typename>
80 typedef typename ordering_transformation::Type
Ordering;
88 CompositeGridFunctionSpace(const Backend& backend, Children&... children)
89 : NodeT(TypeTree::assertGridViewType<typename NodeT::template Child<0>::Type>(children)...)
94 : NodeT(TypeTree::assertGridViewType<typename NodeT::template Child<0>::Type>(children)...)
99 : NodeT(TypeTree::assertGridViewType<typename NodeT::template Child<0>::Type>(children)...)
104 : NodeT(TypeTree::assertGridViewType<typename NodeT::template Child<0>::Type>(children)...)
139 "Ordering can only be obtained for root space in GridFunctionSpace tree.");
155 "Ordering can only be obtained for root space in GridFunctionSpace tree.");
171 "Ordering can only be obtained for root space in GridFunctionSpace tree.");
187 "Ordering can only be obtained for root space in GridFunctionSpace tree.");
202 void create_ordering()
const 204 _ordering = std::make_shared<Ordering>(ordering_transformation::transform(*
this));
207 mutable std::shared_ptr<Ordering> _ordering;
216 #endif // DUNE_PDELAB_GRIDFUNCTIONSPACE_COMPOSITEGRIDFUNCTIONSPACE_HH Definition: gridfunctionspace/tags.hh:30
base class for tuples of grid function spaces base class that holds implementation of the methods thi...
Definition: compositegridfunctionspace.hh:40
CompositeGridFunctionSpace(Children &... children)
Definition: compositegridfunctionspace.hh:103
Definition: gridfunctionspacebase.hh:134
Trait class for the multi component grid function spaces.
Definition: powercompositegridfunctionspacebase.hh:34
CompositeGridFunctionSpace(std::shared_ptr< Children >... children)
Definition: compositegridfunctionspace.hh:127
CompositeGridFunctionSpace(const Backend &backend, Children &... children)
Definition: compositegridfunctionspace.hh:88
CompositeGridFunctionSpace(const OrderingTag &ordering_tag, Children &... children)
Definition: compositegridfunctionspace.hh:93
CompositeGridFunctionSpace(const Backend &backend, const OrderingTag &ordering_tag, std::shared_ptr< Children >... children)
Definition: compositegridfunctionspace.hh:122
For backward compatibility – Do not use this!
Definition: adaptivity.hh:28
Ordering & ordering()
Direct access to the DOF ordering.
Definition: compositegridfunctionspace.hh:150
bool isRootSpace() const
Definition: gridfunctionspacebase.hh:246
const Ordering & ordering() const
Direct access to the DOF ordering.
Definition: compositegridfunctionspace.hh:134
ordering_transformation::Type Ordering
Definition: compositegridfunctionspace.hh:80
CompositeGridFunctionSpace(const Backend &backend, std::shared_ptr< Children >... children)
Definition: compositegridfunctionspace.hh:112
std::shared_ptr< const Ordering > orderingStorage() const
Direct access to the storage of the DOF ordering.
Definition: compositegridfunctionspace.hh:166
OrderingTag OrderingTag
Definition: powercompositegridfunctionspacebase.hh:100
CompositeGridFunctionSpace(const OrderingTag &ordering_tag, std::shared_ptr< Children >... children)
Definition: compositegridfunctionspace.hh:117
G EntitySet
Definition: powercompositegridfunctionspacebase.hh:45
Definition: datahandleprovider.hh:187
Traits::Backend & backend()
Definition: gridfunctionspacebase.hh:226
Definition: exceptions.hh:34
void update(bool force=false)
Update the indexing information of the GridFunctionSpace.
Definition: gridfunctionspacebase.hh:205
CompositeGridFunctionSpace(const Backend &backend, const OrderingTag &ordering_tag, Children &... children)
Definition: compositegridfunctionspace.hh:98
Mixin class providing common functionality of PowerGridFunctionSpace and CompositeGridFunctionSpace.
Definition: powercompositegridfunctionspacebase.hh:68
std::shared_ptr< Ordering > orderingStorage()
Direct access to the storage of the DOF ordering.
Definition: compositegridfunctionspace.hh:182