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,
70 typedef TypeTree::TransformTree<CompositeGridFunctionSpace,
71 gfs_to_ordering<CompositeGridFunctionSpace>
72 > ordering_transformation;
74 template<typename,typename>
80 typedef typename ordering_transformation::Type
Ordering;
86 typedef typename std::conditional<
95 typename Ordering::Traits::DOFIndex,
96 typename Ordering::Traits::ContainerIndex,
109 : NodeT(TypeTree::assertGridViewType<typename NodeT::template Child<0>::Type>(children)...)
114 : NodeT(TypeTree::assertGridViewType<typename NodeT::template Child<0>::Type>(children)...)
119 : NodeT(TypeTree::assertGridViewType<typename NodeT::template Child<0>::Type>(children)...)
124 : NodeT(TypeTree::assertGridViewType<typename NodeT::template Child<0>::Type>(children)...)
159 "Ordering can only be obtained for root space in GridFunctionSpace tree.");
175 "Ordering can only be obtained for root space in GridFunctionSpace tree.");
191 "Ordering can only be obtained for root space in GridFunctionSpace tree.");
207 "Ordering can only be obtained for root space in GridFunctionSpace tree.");
222 void create_ordering()
const
224 _ordering = std::make_shared<Ordering>(ordering_transformation::transform(*
this));
227 mutable std::shared_ptr<Ordering> _ordering;
Traits::Backend & backend()
Definition: gridfunctionspacebase.hh:281
void update(bool force=false)
Update the indexing information of the GridFunctionSpace.
Definition: gridfunctionspacebase.hh:259
OrderingTag OrderingTag
Definition: powercompositegridfunctionspacebase.hh:100
bool isRootSpace() const
Definition: gridfunctionspacebase.hh:342
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
base class for tuples of grid function spaces base class that holds implementation of the methods thi...
Definition: compositegridfunctionspace.hh:53
CompositeGridFunctionSpace(const Backend &backend, const OrderingTag &ordering_tag, Children &... children)
Definition: compositegridfunctionspace.hh:118
ordering_transformation::Type Ordering
Definition: compositegridfunctionspace.hh:80
std::shared_ptr< Ordering > orderingStorage()
Direct access to the storage of the DOF ordering.
Definition: compositegridfunctionspace.hh:202
CompositeGridFunctionSpace(std::shared_ptr< Children >... children)
Definition: compositegridfunctionspace.hh:147
const Ordering & ordering() const
Direct access to the DOF ordering.
Definition: compositegridfunctionspace.hh:154
CompositeGridFunctionSpace(const OrderingTag &ordering_tag, Children &... children)
Definition: compositegridfunctionspace.hh:113
std::shared_ptr< const Ordering > orderingStorage() const
Direct access to the storage of the DOF ordering.
Definition: compositegridfunctionspace.hh:186
CompositeGridFunctionSpace(const Backend &backend, std::shared_ptr< Children >... children)
Definition: compositegridfunctionspace.hh:132
Ordering & ordering()
Direct access to the DOF ordering.
Definition: compositegridfunctionspace.hh:170
ImplementationBase::Traits Traits
Definition: compositegridfunctionspace.hh:102
CompositeGridFunctionSpace(const Backend &backend, Children &... children)
Definition: compositegridfunctionspace.hh:108
CompositeGridFunctionSpace(const OrderingTag &ordering_tag, std::shared_ptr< Children >... children)
Definition: compositegridfunctionspace.hh:137
CompositeGridFunctionSpace(Children &... children)
Definition: compositegridfunctionspace.hh:123
CompositeGridFunctionSpace(const Backend &backend, const OrderingTag &ordering_tag, std::shared_ptr< Children >... children)
Definition: compositegridfunctionspace.hh:142
extract type for storing constraints
Definition: compositegridfunctionspace.hh:85
std::conditional< std::conjunction_v< std::is_same< EmptyTransformation, typenameChildren::templateConstraintsContainer< E >::Type >... >, EmptyTransformation, ConstraintsTransformation< typenameOrdering::Traits::DOFIndex, typenameOrdering::Traits::ContainerIndex, E > >::type Type
Definition: compositegridfunctionspace.hh:99
Definition: datahandleprovider.hh:189
Definition: gridfunctionspacebase.hh:190
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
Definition: gridfunctionspace/tags.hh:30