1#ifndef DUNE_FEM_SPACE_DISCONTINUOUSGALERKIN_SHAPEFUNCTIONSETS_HH
2#define DUNE_FEM_SPACE_DISCONTINUOUSGALERKIN_SHAPEFUNCTIONSETS_HH
8#include <dune/common/documentation.hh>
10#include <dune/geometry/type.hh>
63 const std::vector< Dune::GeometryType > &
types ()
const;
69 int order ( Dune::GeometryType type )
const;
100 static const int dimension = GridPartType::dimension;
102 static const int codimension = dimension - mydimension;
113 : types_(
types( gridPart ) )
115 typedef typename std::vector< Dune::GeometryType >::const_iterator const_iterator;
116 const const_iterator end = types_.end();
117 for( const_iterator it = types_.begin(); it != end; ++it )
119 const Dune::GeometryType type = *it;
120 shapeFunctionSets_.template insert< SingletonProviderType >( type );
133 : types_(
std::move( other.types_ ) ),
134 shapeFunctionSets_(
std::move( other.shapeFunctionSets_ ) )
146 const std::vector< Dune::GeometryType > &
types ()
const {
return types_; }
153 typedef typename std::vector< Dune::GeometryType >::const_iterator const_iterator;
154 const const_iterator end = types_.end();
155 for( const_iterator it = types_.begin(); it != end; ++it )
157 const Dune::GeometryType type = *it;
165 int order ( Dune::GeometryType type )
const
181 typedef typename GridPartType::GridType GridType;
182 typedef typename GridPartType::IndexSetType IndexSetType;
186 std::vector< Dune::GeometryType > types_;
187 ShapeFunctionSetStorageType shapeFunctionSets_;
195 template<
class Gr
idPart,
class ShapeFunctionSet,
class Storage >
206 typedef typename CachedShapeFunctionSetType::ImplementationType ImplementationType;
238 : impl_(
std::move( other.impl_ ) )
246 const std::vector< Dune::GeometryType > &
types ()
const {
return impl_.
types(); }
252 int order ( Dune::GeometryType type )
const {
return impl_.
order( type ); }
261 Implementation impl_;
269 template<
class Implementation,
class Range >
288 template<
class... Args >
290 : impl_(
std::forward< Args >( args )... )
304 : impl_(
std::move( other.impl_ ) )
316 const std::vector< Dune::GeometryType > &
types ()
const {
return impl().types(); }
319 int order ()
const {
return impl().order(); }
322 int order ( Dune::GeometryType type )
const {
return impl().order( type ); }
333 const Implementation &impl ()
const {
return impl_; }
335 Implementation impl_;
Provides a proxy class for pointers to a shape function set.
double max(const Dune::Fem::Double &v, const double p)
Definition: double.hh:965
Definition: bindguard.hh:11
default implementation uses method geomTypes of given index set. Used in DiscreteFunctionSpaces.
Definition: allgeomtypes.hh:99
const std ::vector< GeometryType > & geomTypes(unsigned int codim) const
returns vector with geometry tpyes this index set has indices for
Definition: allgeomtypes.hh:171
@ dimDomain
dimension of domain vector space
Definition: functionspaceinterface.hh:46
interface class representing a family of shape function sets
Definition: shapefunctionsets.hh:33
ShapeFunctionSets(ShapeFunctionSets &&)
move constructor
int order(Dune::GeometryType type) const
return order per geometry type
ShapeFunctionSetType shapeFunctionSet(const Dune::GeometryType &type) const
return shape function set
ImplementationDefined ShapeFunctionSetType
shape function set type
Definition: shapefunctionsets.hh:36
ShapeFunctionSets & operator=(const ShapeFunctionSets &)=delete
assignment operator
ShapeFunctionSets(const ShapeFunctionSets &)=delete
copy constructor
const std::vector< Dune::GeometryType > & types() const
return vector of geometry types
int order() const
return maximum order
Definition: shapefunctionsets.hh:90
CachedShapeFunctionSets(ThisType &&other)
Definition: shapefunctionsets.hh:132
GridPart GridPartType
grid part type
Definition: shapefunctionsets.hh:95
Dune::Fem::ShapeFunctionSetProxy< ShapeFunctionSet > ShapeFunctionSetType
shape function set type
Definition: shapefunctionsets.hh:97
CachedShapeFunctionSets(const GridPartType &gridPart)
Definition: shapefunctionsets.hh:112
ShapeFunctionSetType shapeFunctionSet(const Dune::GeometryType &type) const
return shape function set
Definition: shapefunctionsets.hh:171
CachedShapeFunctionSets & operator=(const ThisType &)=delete
const std::vector< Dune::GeometryType > & types() const
return vector of geometry types
Definition: shapefunctionsets.hh:146
CachedShapeFunctionSets(const ThisType &)=delete
int order(Dune::GeometryType type) const
return maximum order
Definition: shapefunctionsets.hh:165
int order() const
return maximum order
Definition: shapefunctionsets.hh:149
Definition: shapefunctionsets.hh:197
Implementation::ShapeFunctionSetType ShapeFunctionSetType
shape function set type
Definition: shapefunctionsets.hh:217
SelectCachingShapeFunctionSets(const GridPart &gridPart)
Definition: shapefunctionsets.hh:225
int order(Dune::GeometryType type) const
return maximum order
Definition: shapefunctionsets.hh:252
SelectCachingShapeFunctionSets(ThisType &&other)
Definition: shapefunctionsets.hh:237
static constexpr bool codegenShapeFunctionSet
Definition: shapefunctionsets.hh:219
SelectCachingShapeFunctionSets(const ThisType &)=delete
int order() const
return maximum order
Definition: shapefunctionsets.hh:249
ShapeFunctionSetType shapeFunctionSet(const Dune::GeometryType &type) const
return shape function set
Definition: shapefunctionsets.hh:255
SelectCachingShapeFunctionSets & operator=(const ThisType &)=delete
const std::vector< Dune::GeometryType > & types() const
return vector of geometry types
Definition: shapefunctionsets.hh:246
Definition: shapefunctionsets.hh:271
VectorialShapeFunctionSets(ThisType &&other)
Definition: shapefunctionsets.hh:303
int order() const
return maximum order
Definition: shapefunctionsets.hh:319
ShapeFunctionSetType shapeFunctionSet(const Dune::GeometryType &type) const
return shape function set
Definition: shapefunctionsets.hh:325
VectorialShapeFunctionSets & operator=(const ThisType &)=delete
VectorialShapeFunctionSet< typename Implementation::ShapeFunctionSetType, Range > ShapeFunctionSetType
shape function set type
Definition: shapefunctionsets.hh:278
VectorialShapeFunctionSets(Args &&...args)
Definition: shapefunctionsets.hh:289
VectorialShapeFunctionSets(ThisType &)=delete
VectorialShapeFunctionSets(const ThisType &)=delete
static constexpr bool codegenShapeFunctionSet
Definition: shapefunctionsets.hh:275
const std::vector< Dune::GeometryType > & types() const
return vector of geometry types
Definition: shapefunctionsets.hh:316
VectorialShapeFunctionSets(Implementation &&impl)
Definition: shapefunctionsets.hh:284
int order(Dune::GeometryType type) const
return maximum order
Definition: shapefunctionsets.hh:322
int order() const
Definition: proxy.hh:67
Definition: selectcaching.hh:26
Interface class for shape function sets.
Definition: shapefunctionset/shapefunctionset.hh:33
Definition: shapefunctionset/vectorial.hh:447
Definition: singletonlist.hh:25
Singleton list for key/object pairs.
Definition: singletonlist.hh:53