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;
77 ShapeFunctionSetType
shapeFunctionSet (
const 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 179 static std::vector< Dune::GeometryType >
types (
const GridPartType &gridPart )
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,
template<
class >
class Storage >
204 static CachedShapeFunctionSetType *createObject (
const Dune::GeometryType &type )
206 typedef typename CachedShapeFunctionSetType::ImplementationType ImplementationType;
207 return new CachedShapeFunctionSetType( type, ImplementationType( type ) );
210 static void deleteObject ( CachedShapeFunctionSetType *
object ) {
delete object; }
236 : impl_(
std::
move( other.impl_ ) )
244 const std::vector< Dune::GeometryType > &
types ()
const {
return impl_.types(); }
247 int order ()
const {
return impl_.order(); }
250 int order ( Dune::GeometryType type )
const {
return impl_.order( type ); }
255 return impl_.shapeFunctionSet( type );
259 Implementation impl_;
267 template<
class Implementation,
class Range >
284 template<
class... Args >
286 : impl_(
std::forward< Args >( args )... )
300 : impl_(
std::
move( other.impl_ ) )
312 const std::vector< Dune::GeometryType > &
types ()
const {
return impl().types(); }
315 int order ()
const {
return impl().order(); }
318 int order ( Dune::GeometryType type )
const {
return impl().order( type ); }
329 const Implementation &impl ()
const {
return impl_; }
331 Implementation impl_;
338 #endif // #ifndef DUNE_FEM_SPACE_DISCONTINUOUSGALERKIN_SHAPEFUNCTIONSETS_HH Definition: shapefunctionsets.hh:268
Definition: selectcaching.hh:28
int order(Dune::GeometryType type) const
return maximum order
Definition: shapefunctionsets.hh:165
int order(Dune::GeometryType type) const
return maximum order
Definition: shapefunctionsets.hh:250
ShapeFunctionSetType shapeFunctionSet(const Dune::GeometryType &type) const
return shape function set
Definition: shapefunctionsets.hh:253
static constexpr T max(T a)
Definition: utility.hh:65
Definition: shapefunctionset/vectorial.hh:428
Singleton list for key/object pairs.
Definition: singletonlist.hh:49
interface class representing a family of shape function sets
Definition: shapefunctionsets.hh:32
VectorialShapeFunctionSet< typename Implementation::ShapeFunctionSetType, Range > ShapeFunctionSetType
shape function set type
Definition: shapefunctionsets.hh:274
Definition: shapefunctionset/shapefunctionset.hh:33
int order() const
return maximum order
Definition: shapefunctionsets.hh:247
dimension of domain vector space
Definition: functionspaceinterface.hh:45
Implementation::ShapeFunctionSetType ShapeFunctionSetType
shape function set type
Definition: shapefunctionsets.hh:217
CachedShapeFunctionSets(const GridPartType &gridPart)
Definition: shapefunctionsets.hh:112
const std::vector< Dune::GeometryType > & types() const
return vector of geometry types
Definition: shapefunctionsets.hh:312
int order(Dune::GeometryType type) const
return maximum order
Definition: shapefunctionsets.hh:318
ShapeFunctionSetType shapeFunctionSet(const Dune::GeometryType &type) const
return shape function set
Definition: shapefunctionsets.hh:321
GridPart GridPartType
grid part type
Definition: shapefunctionsets.hh:95
ShapeFunctionSetType shapeFunctionSet(const Dune::GeometryType &type) const
return shape function set
Definition: shapefunctionset/proxy.hh:35
Definition: coordinate.hh:4
const std::vector< Dune::GeometryType > & types() const
return vector of geometry types
Definition: shapefunctionsets.hh:244
const std::vector< Dune::GeometryType > & types() const
return vector of geometry types
SelectCachingShapeFunctionSets(ThisType &&other)
Definition: shapefunctionsets.hh:235
SelectCachingShapeFunctionSets(const GridPart &gridPart)
Definition: shapefunctionsets.hh:223
int order() const
return maximum order
Definition: shapefunctionsets.hh:149
Provides a proxy class for pointers to a shape function set.
default implementation uses method geomTypes of given index set. Used in DiscreteFunctionSpaces.
Definition: allgeomtypes.hh:89
const std::vector< Dune::GeometryType > & types() const
return vector of geometry types
Definition: shapefunctionsets.hh:146
VectorialShapeFunctionSets(Implementation &&impl)
Definition: shapefunctionsets.hh:280
int order() const
return maximum order
ShapeFunctionSetType shapeFunctionSet(const Dune::GeometryType &type) const
return shape function set
Definition: shapefunctionsets.hh:171
void move(ArrayInterface< T > &array, const unsigned int oldOffset, const unsigned int newOffset, const unsigned int length)
Definition: array_inline.hh:38
ShapeFunctionSets & operator=(const ShapeFunctionSets &)=delete
assignment operator
Dune::Fem::ShapeFunctionSetProxy< ShapeFunctionSet > ShapeFunctionSetType
shape function set type
Definition: shapefunctionsets.hh:97
ImplementationDefined ShapeFunctionSetType
shape function set type
Definition: shapefunctionsets.hh:36
int order() const
return maximum order
Definition: shapefunctionsets.hh:315
ShapeFunctionSets(ShapeFunctionSets &&)
move constructor
CachedShapeFunctionSets(ThisType &&other)
Definition: shapefunctionsets.hh:132
Definition: shapefunctionsets.hh:89
Definition: shapefunctionsets.hh:196
VectorialShapeFunctionSets(ThisType &&other)
Definition: shapefunctionsets.hh:299
VectorialShapeFunctionSets(Args &&...args)
Definition: shapefunctionsets.hh:285
Definition: singletonlist.hh:21