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,
50 TypeTree::CompositeNode<Children...>::CHILDREN
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)...)
90 , ImplementationBase(backend,OrderingTag())
94 : NodeT(TypeTree::assertGridViewType<typename NodeT::template Child<0>::Type>(children)...)
95 , ImplementationBase(Backend(),ordering_tag)
99 : NodeT(TypeTree::assertGridViewType<typename NodeT::template Child<0>::Type>(children)...)
100 , ImplementationBase(backend,ordering_tag)
104 : NodeT(TypeTree::assertGridViewType<typename NodeT::template Child<0>::Type>(children)...)
105 , ImplementationBase(Backend(),OrderingTag())
114 , ImplementationBase(backend,OrderingTag())
119 , ImplementationBase(Backend(),ordering_tag)
124 , ImplementationBase(backend,ordering_tag)
129 , ImplementationBase(Backend(),OrderingTag())
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 CompositeGridFunctionSpace(Children &...children)
Definition: compositegridfunctionspace.hh:103
Traits::Backend & backend()
Definition: gridfunctionspacebase.hh:227
Definition: exceptions.hh:34
CompositeGridFunctionSpace(const Backend &backend, const OrderingTag &ordering_tag, Children &...children)
Definition: compositegridfunctionspace.hh:98
std::shared_ptr< Ordering > orderingStorage()
Direct access to the storage of the DOF ordering.
Definition: compositegridfunctionspace.hh:182
Ordering & ordering()
Direct access to the DOF ordering.
Definition: compositegridfunctionspace.hh:150
CompositeGridFunctionSpace(std::shared_ptr< Children >...children)
Definition: compositegridfunctionspace.hh:127
Definition: adaptivity.hh:27
CompositeGridFunctionSpace(const Backend &backend, const OrderingTag &ordering_tag, std::shared_ptr< Children >...children)
Definition: compositegridfunctionspace.hh:122
Definition: gridfunctionspace/tags.hh:30
std::shared_ptr< const Ordering > orderingStorage() const
Direct access to the storage of the DOF ordering.
Definition: compositegridfunctionspace.hh:166
CompositeGridFunctionSpace(const OrderingTag &ordering_tag, std::shared_ptr< Children >...children)
Definition: compositegridfunctionspace.hh:117
CompositeGridFunctionSpace(const OrderingTag &ordering_tag, Children &...children)
Definition: compositegridfunctionspace.hh:93
Definition: datahandleprovider.hh:188
CompositeGridFunctionSpace(const Backend &backend, Children &...children)
Definition: compositegridfunctionspace.hh:88
CompositeGridFunctionSpace(const Backend &backend, std::shared_ptr< Children >...children)
Definition: compositegridfunctionspace.hh:112
Trait class for the multi component grid function spaces.
Definition: powercompositegridfunctionspacebase.hh:34
G EntitySet
Definition: powercompositegridfunctionspacebase.hh:45
ordering_transformation::Type Ordering
Definition: compositegridfunctionspace.hh:80
Definition: gridfunctionspacebase.hh:134
bool isRootSpace() const
Definition: gridfunctionspacebase.hh:247
Mixin class providing common functionality of PowerGridFunctionSpace and CompositeGridFunctionSpace.
Definition: powercompositegridfunctionspacebase.hh:68
void update(bool force=false)
Update the indexing information of the GridFunctionSpace.
Definition: gridfunctionspacebase.hh:205
const Ordering & ordering() const
Direct access to the DOF ordering.
Definition: compositegridfunctionspace.hh:134
base class for tuples of grid function spaces base class that holds implementation of the methods thi...
Definition: compositegridfunctionspace.hh:40
OrderingTag OrderingTag
Definition: powercompositegridfunctionspacebase.hh:100