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,
65 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: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
OrderingTag 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
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:136
Mixin class providing common functionality of PowerGridFunctionSpace and CompositeGridFunctionSpace.
Definition powercompositegridfunctionspacebase.hh:73
Definition gridfunctionspace/tags.hh:30