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> 38 template<
typename Backend,
42 :
public TypeTree::CompositeNode<Children...>
44 CompositeGridFunctionSpace<
48 typename TypeTree::Child<TypeTree::CompositeNode<Children...>,0>::Traits::EntitySet,
53 ,
public DataHandleProvider<CompositeGridFunctionSpace<Backend,OrderingTag,Children...> >
55 typedef TypeTree::CompositeNode<Children...> NodeT;
59 typename TypeTree::Child<NodeT,0>::Traits::EntitySet,
65 CompositeGridFunctionSpace,
71 typedef TypeTree::TransformTree<CompositeGridFunctionSpace,
72 gfs_to_ordering<CompositeGridFunctionSpace>
73 > ordering_transformation;
75 template<typename,typename>
81 typedef typename ordering_transformation::Type
Ordering;
89 CompositeGridFunctionSpace(const Backend& backend, Children&... children)
90 : NodeT(TypeTree::assertGridViewType<typename NodeT::template Child<0>::Type>(children)...)
95 : NodeT(TypeTree::assertGridViewType<typename NodeT::template Child<0>::Type>(children)...)
100 : NodeT(TypeTree::assertGridViewType<typename NodeT::template Child<0>::Type>(children)...)
105 : NodeT(TypeTree::assertGridViewType<typename NodeT::template Child<0>::Type>(children)...)
140 "Ordering can only be obtained for root space in GridFunctionSpace tree.");
156 "Ordering can only be obtained for root space in GridFunctionSpace tree.");
172 "Ordering can only be obtained for root space in GridFunctionSpace tree.");
188 "Ordering can only be obtained for root space in GridFunctionSpace tree.");
203 void create_ordering()
const 206 TypeTree::applyToTree(*
this,visitor);
207 _ordering = std::make_shared<Ordering>(ordering_transformation::transform(*
this));
210 mutable std::shared_ptr<Ordering> _ordering;
219 #endif // DUNE_PDELAB_GRIDFUNCTIONSPACE_COMPOSITEGRIDFUNCTIONSPACE_HH Mixin class providing common functionality of PowerGridFunctionSpace and CompositeGridFunctionSpace.
Definition: powercompositegridfunctionspacebase.hh:68
Traits::Backend & backend()
Definition: gridfunctionspacebase.hh:226
base class for tuples of grid function spaces base class that holds implementation of the methods thi...
Definition: compositegridfunctionspace.hh:41
Definition: exceptions.hh:34
void update(bool force=false)
Update the indexing information of the GridFunctionSpace.
Definition: gridfunctionspacebase.hh:205
G EntitySet
Definition: powercompositegridfunctionspacebase.hh:45
CompositeGridFunctionSpace(const Backend &backend, const OrderingTag &ordering_tag, std::shared_ptr< Children >... children)
Definition: compositegridfunctionspace.hh:123
std::shared_ptr< const Ordering > orderingStorage() const
Direct access to the storage of the DOF ordering.
Definition: compositegridfunctionspace.hh:167
std::shared_ptr< Ordering > orderingStorage()
Direct access to the storage of the DOF ordering.
Definition: compositegridfunctionspace.hh:183
Definition: gridfunctionspaceutilities.hh:23
CompositeGridFunctionSpace(const OrderingTag &ordering_tag, Children &... children)
Definition: compositegridfunctionspace.hh:94
Definition: datahandleprovider.hh:187
OrderingTag OrderingTag
Definition: powercompositegridfunctionspacebase.hh:100
const Ordering & ordering() const
Direct access to the DOF ordering.
Definition: compositegridfunctionspace.hh:135
CompositeGridFunctionSpace(const Backend &backend, const OrderingTag &ordering_tag, Children &... children)
Definition: compositegridfunctionspace.hh:99
bool isRootSpace() const
Definition: gridfunctionspacebase.hh:246
CompositeGridFunctionSpace(const OrderingTag &ordering_tag, std::shared_ptr< Children >... children)
Definition: compositegridfunctionspace.hh:118
CompositeGridFunctionSpace(const Backend &backend, std::shared_ptr< Children >... children)
Definition: compositegridfunctionspace.hh:113
Trait class for the multi component grid function spaces.
Definition: powercompositegridfunctionspacebase.hh:34
CompositeGridFunctionSpace(Children &... children)
Definition: compositegridfunctionspace.hh:104
For backward compatibility – Do not use this!
Definition: adaptivity.hh:27
Definition: gridfunctionspacebase.hh:134
ordering_transformation::Type Ordering
Definition: compositegridfunctionspace.hh:81
Definition: gridfunctionspace/tags.hh:30
const Traits::EntitySet & entitySet() const
get grid view partition
Definition: powercompositegridfunctionspacebase.hh:128
CompositeGridFunctionSpace(const Backend &backend, Children &... children)
Definition: compositegridfunctionspace.hh:89
Ordering & ordering()
Direct access to the DOF ordering.
Definition: compositegridfunctionspace.hh:151
CompositeGridFunctionSpace(std::shared_ptr< Children >... children)
Definition: compositegridfunctionspace.hh:128