Go to the documentation of this file.
3 #ifndef DUNE_PDELAB_GRIDFUNCTIONSPACE_DUNEFUNCTIONSGRIDFUNCTIONSPACE_HH
4 #define DUNE_PDELAB_GRIDFUNCTIONSPACE_DUNEFUNCTIONSGRIDFUNCTIONSPACE_HH
9 #include <dune/common/exceptions.hh>
10 #include <dune/common/typetraits.hh>
26 namespace Experimental {
31 template<
typename VBE>
34 template<std::
size_t block_size>
37 template<
typename VBE>
52 template<
typename DFBasis,
typename VBE,
typename CE>
54 :
public TypeTree::LeafNode
58 using GV =
typename DFBasis::GridView;
60 template<
typename,
typename>
68 using GridView = Dune::PDELab::impl::GridView<typename DFBasis::GridView>;
69 using EntitySet = Dune::PDELab::impl::EntitySet<typename DFBasis::GridView>;
103 auto type = element.type();
107 auto newLocalView = std::make_shared<typename DFBasis::LocalView>(
_basis->localView());
108 newLocalView->bind(element);
110 return insertedLocalView.first->second->tree().finiteElement();
114 return mapEntry->second->tree().finiteElement();
154 return _gfs.
basis().size();
166 return _gfs.
basis().maxLocalSize();
195 using Type = std::conditional_t<
214 : _es(df_basis->
gridView(), Traits::EntitySet::allCodims())
215 , _df_basis(std::move(df_basis))
216 , _pce(std::move(ce))
221 : _es(df_basis->
gridView(), Traits::EntitySet::allCodims())
222 , _df_basis(std::move(df_basis))
223 , _pce(std::make_shared<CE>())
230 return _es.gridView();
242 return _finiteElementMap;
265 return _ordering.
size();
275 return _ordering.
size();
291 _df_basis->update(_es.gridView());
294 const std::string&
name()
const
317 std::shared_ptr<DFBasis> _df_basis;
319 std::shared_ptr<CE const> _pce;
331 template <
typename DFBasis,
typename V,
typename CE,
typename U>
333 :
public CommDataHandleIF<AddDataHandle<Experimental::GridFunctionSpace<DFBasis,V,CE>,U>, typename U::field_type>
335 using DataType =
typename U::field_type;
356 template<
class EntityType>
357 size_t size (
const EntityType&
e)
const
363 template<
class MessageBuffer,
class EntityType>
364 void gather(MessageBuffer& buffer,
const EntityType& entity)
const
368 template<
class MessageBuffer,
class EntityType>
369 void scatter(MessageBuffer& buffer,
const EntityType& entity,
size_t n)
375 #endif // DUNE_PDELAB_GRIDFUNCTIONSPACE_DUNEFUNCTIONSGRIDFUNCTIONSPACE_HH
Definition: dunefunctionsgridfunctionspace.hh:132
DOFIndex ContainerIndex
Definition: dunefunctionsgridfunctionspace.hh:142
void gather(MessageBuffer &buffer, const EntityType &entity) const
Definition: dunefunctionsgridfunctionspace.hh:364
Traits::SizeType globalSize() const
Definition: dunefunctionsgridfunctionspace.hh:273
void update()
Definition: dunefunctionsgridfunctionspace.hh:179
Mixin base class for specifying output hints to I/O routines like VTK.
Definition: function.hh:124
Definition: dunefunctionsgridfunctionspace.hh:85
std::shared_ptr< const CE > constraintsStorage() const
return storage of constraints engine
Definition: dunefunctionsgridfunctionspace.hh:252
Ordering(const GridFunctionSpace &gfs)
Definition: dunefunctionsgridfunctionspace.hh:148
CE ConstraintsType
Definition: dunefunctionsgridfunctionspace.hh:73
Definition: gridfunctionspace/tags.hh:220
A pdelab grid function space implemented by a dune-functions function space basis.
Definition: dunefunctionsgridfunctionspace.hh:53
std::size_t size_type
Definition: dunefunctionsgridfunctionspace.hh:71
std::decay_t< decltype(*registerDuneFunctionsCompatibleVBE(std::declval< VBE * >()))> DuneFunctionsCompatibleVBE
Definition: dunefunctionsgridfunctionspace.hh:38
Traits::SizeType blockCount() const
Definition: dunefunctionsgridfunctionspace.hh:268
const Basis & basis() const
Definition: dunefunctionsgridfunctionspace.hh:309
Traits::SizeType size() const
Definition: dunefunctionsgridfunctionspace.hh:263
static const int dim
Definition: adaptivity.hh:84
void scatter(MessageBuffer &buffer, const EntityType &entity, size_t n)
Definition: dunefunctionsgridfunctionspace.hh:369
std::size_t size_type
Definition: dunefunctionsgridfunctionspace.hh:136
const Traits::FiniteElementType & find(const typename GridView::template Codim< 0 >::Entity &element) const
Get local basis functions for entity.
Definition: dunefunctionsgridfunctionspace.hh:101
Definition: noconstraints.hh:16
size_type maxLocalSize() const
Definition: dunefunctionsgridfunctionspace.hh:164
Rudimentary internal implementation of a FiniteElementMap.
Definition: dunefunctionsgridfunctionspace.hh:83
For backward compatibility – Do not use this!
Definition: adaptivity.hh:28
const Traits::EntitySet & entitySet() const
get EntitySet
Definition: dunefunctionsgridfunctionspace.hh:234
const std::string & name() const
Definition: dunefunctionsgridfunctionspace.hh:294
size_type SizeType
Definition: dunefunctionsgridfunctionspace.hh:137
Traits::SizeType maxLocalSize() const
Definition: dunefunctionsgridfunctionspace.hh:278
DFBasis Basis
Definition: dunefunctionsgridfunctionspace.hh:75
Definition: gridfunctionspace/tags.hh:208
ContainerIndex mapIndex(const DOFIndex &di) const
Definition: dunefunctionsgridfunctionspace.hh:169
Definition: gridfunctionspacebase.hh:134
std::conditional_t< std::is_same< CE, NoConstraints >::value, EmptyTransformation, ConstraintsTransformation< typename Ordering::Traits::DOFIndex, typename Ordering::Traits::ContainerIndex, E > > Type
define Type as the Type of a container of E's
Definition: dunefunctionsgridfunctionspace.hh:202
const Ordering & ordering() const
Direct access to the DOF ordering.
Definition: dunefunctionsgridfunctionspace.hh:258
typename DFBasis::MultiIndex DOFIndex
Definition: dunefunctionsgridfunctionspace.hh:141
Definition: istl/descriptors.hh:47
const Traits::ConstraintsType & constraints() const
return constraints engine
Definition: dunefunctionsgridfunctionspace.hh:246
size_type size() const
Definition: dunefunctionsgridfunctionspace.hh:152
A grid function space.
Definition: gridfunctionspace.hh:166
DOFIndex ContainerIndex
Definition: dunefunctionsgridfunctionspace.hh:135
DuneFunctionsCompatibleVBE< VBE > Backend
Definition: dunefunctionsgridfunctionspace.hh:80
Definition: constraintstransformation.hh:111
std::size_t size_type
Definition: dunefunctionsgridfunctionspace.hh:143
Definition: dunefunctionsgridfunctionspace.hh:130
const Entity & e
Definition: localfunctionspace.hh:120
void mapIndex(const DOFIndex &di, ContainerIndex &ci) const
Definition: dunefunctionsgridfunctionspace.hh:174
a class holding transformation for constrained spaces
Definition: constraintstransformation.hh:18
const auto & finiteElementMap() const
get finite element map
Definition: dunefunctionsgridfunctionspace.hh:240
Dune::PDELab::impl::EntitySet< typename DFBasis::GridView > EntitySet
Definition: dunefunctionsgridfunctionspace.hh:69
size_type blockCount() const
Same as size(), because block size is always 1.
Definition: dunefunctionsgridfunctionspace.hh:159
FEM FiniteElementMap
Definition: dunefunctionsgridfunctionspace.hh:123
VBE * registerDuneFunctionsCompatibleVBE(VBE *)
GridFunctionSpace(std::shared_ptr< DFBasis > df_basis, std::shared_ptr< CE > ce)
constructor
Definition: dunefunctionsgridfunctionspace.hh:213
bool fixedsize(int dim, int codim) const
returns true if size per entity of given dim and codim is a constant
Definition: dunefunctionsgridfunctionspace.hh:350
Definition: dunefunctions.hh:13
extract type for storing constraints
Definition: dunefunctionsgridfunctionspace.hh:191
size_type SizeType
Definition: dunefunctionsgridfunctionspace.hh:72
bool isRootSpace() const
Definition: dunefunctionsgridfunctionspace.hh:304
bool contains(int dim, int codim) const
returns true if data for this codim should be communicated
Definition: dunefunctionsgridfunctionspace.hh:344
std::shared_ptr< DFBasis > _basis
Definition: dunefunctionsgridfunctionspace.hh:118
typename DFBasis::MultiIndex DOFIndex
Definition: dunefunctionsgridfunctionspace.hh:134
Definition: genericdatahandle.hh:665
export Traits class
Definition: dunefunctionsgridfunctionspace.hh:66
typename DFBasis::LocalView::Tree::FiniteElement FiniteElement
Definition: dunefunctionsgridfunctionspace.hh:87
size_t size(const EntityType &e) const
Definition: dunefunctionsgridfunctionspace.hh:357
static const unsigned int value
Definition: gridfunctionspace/tags.hh:139
AddDataHandle(const Experimental::GridFunctionSpace< DFBasis, V, CE > &gfs, const U &u)
constructor
Definition: dunefunctionsgridfunctionspace.hh:339
GridFunctionSpace(std::shared_ptr< DFBasis > df_basis)
Definition: dunefunctionsgridfunctionspace.hh:220
DFBasis Basis
Definition: dunefunctionsgridfunctionspace.hh:128
Dune::PDELab::impl::GridView< typename DFBasis::GridView > GridView
Definition: dunefunctionsgridfunctionspace.hh:68
void name(const std::string &name)
Definition: dunefunctionsgridfunctionspace.hh:299
std::map< GeometryType, std::shared_ptr< typename DFBasis::LocalView > > geometryTypeToLocalView_
Definition: dunefunctionsgridfunctionspace.hh:120
const Traits::GridView & gridView() const
get grid view
Definition: dunefunctionsgridfunctionspace.hh:228
FiniteElement FiniteElementType
Definition: dunefunctionsgridfunctionspace.hh:88
void update(bool force=false)
Update the indexing information of the GridFunctionSpace.
Definition: dunefunctionsgridfunctionspace.hh:288