4 #ifndef DUNE_PDELAB_VECTORGRIDFUNCTIONSPACE_HH
5 #define DUNE_PDELAB_VECTORGRIDFUNCTIONSPACE_HH
9 #include <dune/common/shared_ptr.hh>
11 #include <dune/typetree/powernode.hh>
44 typename Constraints = NoConstraints,
45 typename OrderingTag = LexicographicOrderingTag,
48 :
public TypeTree::PowerNode<GridFunctionSpace<
93 template<
typename,
typename>
100 typedef TypeTree::PowerNode<LeafGFS,k>
BaseT;
117 gfs_to_ordering<VectorGridFunctionSpace>
122 typedef typename ordering_transformation::Type
Ordering;
131 static typename BaseT::NodeStorage create_components(
const GV& gv,
132 shared_ptr<const FEM> fem_ptr,
133 const LeafBackend& leaf_backend,
136 typename BaseT::NodeStorage r;
137 for (std::size_t i = 0; i < k; ++i)
138 r[i] = make_shared<LeafGFS>(gv,fem_ptr,leaf_backend,leaf_ordering_tag);
145 const Backend&
backend = Backend(),
const LeafBackend& leaf_backend = LeafBackend(),
147 :
BaseT(create_components(gv,stackobject_to_shared_ptr(fem),leaf_backend,leaf_ordering_tag))
159 for (std::size_t i = 0; i < k; ++i)
161 std::stringstream ns;
162 ns << name <<
"_" << i;
163 this->child(i).name(ns.str());
173 "Ordering can only be obtained for root space in GridFunctionSpace tree.");
189 "Ordering can only be obtained for root space in GridFunctionSpace tree.");
205 "Ordering can only be obtained for root space in GridFunctionSpace tree.");
221 "Ordering can only be obtained for root space in GridFunctionSpace tree.");
235 void create_ordering()
const
237 _ordering = make_shared<Ordering>(ordering_transformation::transform(*
this));
240 mutable shared_ptr<Ordering> _ordering;
247 #endif // DUNE_PDELAB_VECTORGRIDFUNCTIONSPACE_HH
TypeTree::PowerNode< LeafGFS, k > BaseT
Definition: vectorgridfunctionspace.hh:100
shared_ptr< const Ordering > orderingStorage() const
Direct access to the storage of the DOF ordering.
Definition: vectorgridfunctionspace.hh:200
const std::string & name() const
Definition: gridfunctionspacebase.hh:238
Tag indicating a standard ordering for a leaf GridfunctionSpace.
Definition: gridfunctionspace/tags.hh:216
Ordering & ordering()
Direct access to the DOF ordering.
Definition: vectorgridfunctionspace.hh:184
Mixin base class for specifying output hints to I/O routines like VTK.
Definition: function.hh:124
Definition: gridfunctionspacebase.hh:137
const Ordering & ordering() const
Direct access to the DOF ordering.
Definition: vectorgridfunctionspace.hh:168
ImplementationBase::Traits Traits
export traits class
Definition: vectorgridfunctionspace.hh:125
shared_ptr< Ordering > orderingStorage()
Direct access to the storage of the DOF ordering.
Definition: vectorgridfunctionspace.hh:216
Dune::PDELab::GridFunctionSpaceBase< VectorGridFunctionSpace< GV, FEM, k, Backend, LeafBackend, Constraints, OrderingTag, LeafOrderingTag >, PowerCompositeGridFunctionSpaceTraits< GV, Backend, OrderingTag, k > >::isRootSpace bool isRootSpace() const
Definition: gridfunctionspacebase.hh:268
Dune::PDELab::PowerCompositeGridFunctionSpaceBase< VectorGridFunctionSpace< GV, FEM, k, Backend, LeafBackend, Constraints, OrderingTag, LeafOrderingTag >, GV, Backend, OrderingTag, k >::OrderingTag OrderingTag OrderingTag
Definition: powercompositegridfunctionspacebase.hh:97
PowerCompositeGridFunctionSpaceBase< VectorGridFunctionSpace, GV, Backend, OrderingTag, k > ImplementationBase
Definition: vectorgridfunctionspace.hh:107
void name(std::string name)
Definition: vectorgridfunctionspace.hh:156
Definition: gridfunctionspace/tags.hh:24
Dune::PDELab::GridFunctionSpaceBase< VectorGridFunctionSpace< GV, FEM, k, Backend, LeafBackend, Constraints, OrderingTag, LeafOrderingTag >, PowerCompositeGridFunctionSpaceTraits< GV, Backend, OrderingTag, k > >::backend Traits::Backend & backend()
Definition: gridfunctionspacebase.hh:248
Definition: datahandleprovider.hh:189
Mixin class providing common functionality of PowerGridFunctionSpace and CompositeGridFunctionSpace.
Definition: powercompositegridfunctionspacebase.hh:65
ordering_transformation::Type Ordering
Definition: vectorgridfunctionspace.hh:122
std::string name() const
Definition: vectorgridfunctionspace.hh:151
A grid function space.
Definition: gridfunctionspace.hh:109
LeafOrderingTag< DefaultLeafOrderingParams > DefaultLeafOrderingTag
Default ordering tag for a MultiIndex-based ordering with standard behavior.
Definition: gridfunctionspace/tags.hh:252
Dune::PDELab::GridFunctionSpaceBase< VectorGridFunctionSpace< GV, FEM, k, Backend, LeafBackend, Constraints, OrderingTag, LeafOrderingTag >, PowerCompositeGridFunctionSpaceTraits< GV, Backend, OrderingTag, k > >::update void update()
Definition: gridfunctionspacebase.hh:229
TypeTree::TransformTree< VectorGridFunctionSpace, gfs_to_ordering< VectorGridFunctionSpace > > ordering_transformation
Definition: vectorgridfunctionspace.hh:118
VectorGridFunctionSpaceTag ImplementationTag
Definition: vectorgridfunctionspace.hh:98
Definition: exceptions.hh:34
Trait class for the multi component grid function spaces.
Definition: powercompositegridfunctionspacebase.hh:33
VectorGridFunctionSpace(const GV &gv, const FEM &fem, const Backend &backend=Backend(), const LeafBackend &leaf_backend=LeafBackend(), const OrderingTag &ordering_tag=OrderingTag(), const LeafOrderingTag &leaf_ordering_tag=LeafOrderingTag())
Definition: vectorgridfunctionspace.hh:144
base class for tuples of grid function spaces product of identical grid function spaces base class th...
Definition: vectorgridfunctionspace.hh:47