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<
215 , _df_basis(
std::move(df_basis))
216 , _pce(
std::move(ce))
222 , _df_basis(
std::move(df_basis))
223 , _pce(
std::make_shared<CE>())
230 return _es.gridView();
242 return _finiteElementMap;
265 return _ordering.size();
270 return _ordering.blockCount();
275 return _ordering.size();
280 return _ordering.maxLocalSize();
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 Traits::SizeType size() const
Definition: dunefunctionsgridfunctionspace.hh:263
a class holding transformation for constrained spaces
Definition: constraintstransformation.hh:18
static const int dim
Definition: adaptivity.hh:84
const Entity & e
Definition: localfunctionspace.hh:120
void gather(MessageBuffer &buffer, const EntityType &entity) const
Definition: dunefunctionsgridfunctionspace.hh:364
A grid function space.
Definition: gridfunctionspace.hh:166
std::map< GeometryType, std::shared_ptr< typename DFBasis::LocalView > > geometryTypeToLocalView_
Definition: dunefunctionsgridfunctionspace.hh:120
FiniteElement FiniteElementType
Definition: dunefunctionsgridfunctionspace.hh:88
const Basis & basis() const
Definition: dunefunctionsgridfunctionspace.hh:309
void scatter(MessageBuffer &buffer, const EntityType &entity, size_t n)
Definition: dunefunctionsgridfunctionspace.hh:369
VBE * registerDuneFunctionsCompatibleVBE(VBE *)
std::size_t size_type
Definition: dunefunctionsgridfunctionspace.hh:71
Definition: dunefunctionsgridfunctionspace.hh:85
GridFunctionSpace(std::shared_ptr< DFBasis > df_basis, std::shared_ptr< CE > ce)
constructor
Definition: dunefunctionsgridfunctionspace.hh:213
Definition: constraintstransformation.hh:111
void update(bool force=false)
Update the indexing information of the GridFunctionSpace.
Definition: dunefunctionsgridfunctionspace.hh:288
A pdelab grid function space implemented by a dune-functions function space basis.
Definition: dunefunctionsgridfunctionspace.hh:53
Definition: gridfunctionspacebase.hh:134
std::decay_t< decltype(*registerDuneFunctionsCompatibleVBE(std::declval< VBE * >()))> DuneFunctionsCompatibleVBE
Definition: dunefunctionsgridfunctionspace.hh:38
const Traits::ConstraintsType & constraints() const
return constraints engine
Definition: dunefunctionsgridfunctionspace.hh:246
Definition: dunefunctionsgridfunctionspace.hh:132
const Ordering & ordering() const
Direct access to the DOF ordering.
Definition: dunefunctionsgridfunctionspace.hh:258
Rudimentary internal implementation of a FiniteElementMap.
Definition: dunefunctionsgridfunctionspace.hh:83
typename DFBasis::MultiIndex DOFIndex
Definition: dunefunctionsgridfunctionspace.hh:141
const auto & finiteElementMap() const
get finite element map
Definition: dunefunctionsgridfunctionspace.hh:240
void update()
Definition: dunefunctionsgridfunctionspace.hh:179
Mixin base class for specifying output hints to I/O routines like VTK.
Definition: function.hh:124
static const unsigned int value
Definition: gridfunctionspace/tags.hh:139
size_type maxLocalSize() const
Definition: dunefunctionsgridfunctionspace.hh:164
Traits::SizeType blockCount() const
Definition: dunefunctionsgridfunctionspace.hh:268
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 Traits::EntitySet & entitySet() const
get EntitySet
Definition: dunefunctionsgridfunctionspace.hh:234
DFBasis Basis
Definition: dunefunctionsgridfunctionspace.hh:128
size_type size() const
Definition: dunefunctionsgridfunctionspace.hh:152
std::size_t size_type
Definition: dunefunctionsgridfunctionspace.hh:143
std::shared_ptr< DFBasis > _basis
Definition: dunefunctionsgridfunctionspace.hh:118
const Traits::FiniteElementType & find(const typename GridView::template Codim< 0 >::Entity &element) const
Get local basis functions for entity.
Definition: dunefunctionsgridfunctionspace.hh:101
bool isRootSpace() const
Definition: dunefunctionsgridfunctionspace.hh:304
Definition: noconstraints.hh:16
DOFIndex ContainerIndex
Definition: dunefunctionsgridfunctionspace.hh:142
size_type SizeType
Definition: dunefunctionsgridfunctionspace.hh:72
DuneFunctionsCompatibleVBE< VBE > Backend
Definition: dunefunctionsgridfunctionspace.hh:80
Traits::SizeType globalSize() const
Definition: dunefunctionsgridfunctionspace.hh:273
For backward compatibility – Do not use this!
Definition: adaptivity.hh:28
GridFunctionSpace(std::shared_ptr< DFBasis > df_basis)
Definition: dunefunctionsgridfunctionspace.hh:220
typename DFBasis::LocalView::Tree::FiniteElement FiniteElement
Definition: dunefunctionsgridfunctionspace.hh:87
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
size_t size(const EntityType &e) const
Definition: dunefunctionsgridfunctionspace.hh:357
Traits::SizeType maxLocalSize() const
Definition: dunefunctionsgridfunctionspace.hh:278
size_type SizeType
Definition: dunefunctionsgridfunctionspace.hh:137
std::shared_ptr< const CE > constraintsStorage() const
return storage of constraints engine
Definition: dunefunctionsgridfunctionspace.hh:252
Dune::PDELab::impl::GridView< typename DFBasis::GridView > GridView
Definition: dunefunctionsgridfunctionspace.hh:68
Definition: dunefunctions.hh:13
typename DFBasis::MultiIndex DOFIndex
Definition: dunefunctionsgridfunctionspace.hh:134
Definition: gridfunctionspace/tags.hh:220
Definition: gridfunctionspace/tags.hh:208
bool contains(int dim, int codim) const
returns true if data for this codim should be communicated
Definition: dunefunctionsgridfunctionspace.hh:344
void name(const std::string &name)
Definition: dunefunctionsgridfunctionspace.hh:299
ContainerIndex mapIndex(const DOFIndex &di) const
Definition: dunefunctionsgridfunctionspace.hh:169
const Traits::GridView & gridView() const
get grid view
Definition: dunefunctionsgridfunctionspace.hh:228
AddDataHandle(const Experimental::GridFunctionSpace< DFBasis, V, CE > &gfs, const U &u)
constructor
Definition: dunefunctionsgridfunctionspace.hh:339
Ordering(const GridFunctionSpace &gfs)
Definition: dunefunctionsgridfunctionspace.hh:148
size_type blockCount() const
Same as size(), because block size is always 1.
Definition: dunefunctionsgridfunctionspace.hh:159
Definition: dunefunctionsgridfunctionspace.hh:130
Dune::PDELab::impl::EntitySet< typename DFBasis::GridView > EntitySet
Definition: dunefunctionsgridfunctionspace.hh:69
Definition: genericdatahandle.hh:665
export Traits class
Definition: dunefunctionsgridfunctionspace.hh:66
std::size_t size_type
Definition: dunefunctionsgridfunctionspace.hh:136
void mapIndex(const DOFIndex &di, ContainerIndex &ci) const
Definition: dunefunctionsgridfunctionspace.hh:174
DFBasis Basis
Definition: dunefunctionsgridfunctionspace.hh:75
CE ConstraintsType
Definition: dunefunctionsgridfunctionspace.hh:73
DOFIndex ContainerIndex
Definition: dunefunctionsgridfunctionspace.hh:135
extract type for storing constraints
Definition: dunefunctionsgridfunctionspace.hh:191
const std::string & name() const
Definition: dunefunctionsgridfunctionspace.hh:294
Definition: istl/descriptors.hh:47