1 #ifndef DUNE_FEM_QUADRATURE_HH 2 #define DUNE_FEM_QUADRATURE_HH 7 #include <dune/common/fvector.hh> 8 #include <dune/common/exceptions.hh> 9 #include <dune/grid/common/grid.hh> 39 template<
class Quadrature >
54 const unsigned int quadPoint )
55 : quadrature_( quadrature ),
56 quadPoint_( quadPoint )
62 ThisType &operator= (
const ThisType & );
70 inline unsigned int point ()
const 90 template<
class Quadrature >
116 template<
typename FieldImp,
int dim,
117 template<
class,
int >
class IntegrationTraits >
123 enum { dimension = dim };
128 typedef IntegrationTraits< FieldType, dimension > Traits;
143 enum { codimension = 0 };
161 : ipList_( QuadratureProviderType :: getQuadrature( geometryType, order ) )
178 const GeometryType &elementGeometry,
180 : ipList_( QuadratureProviderType :: getQuadrature( geometryType, elementGeometry, order ) )
203 : ipList_( org.ipList_ )
207 const QuadraturePointWrapperType operator[] (
unsigned int i )
const 209 return QuadraturePointWrapperType( *
this, i );
217 const IntegrationPointListType &
ipList ()
const 228 return ipList_.nop();
242 const CoordinateType &
point (
size_t i )
const 244 return ipList_.point( i );
278 return ipList_.order();
295 return ipList_.geometryType();
318 template<
class FieldImp,
int dim,
326 static const unsigned int dimension = dim ;
332 typedef QuadratureTraits< FieldType, dimension > Traits;
338 using BaseType :: ipList;
347 enum { codimension = 0 };
360 inline Quadrature(
const GeometryType &geometryType,
int order )
361 : BaseType( geometryType, order )
381 const GeometryType &elementGeometry,
383 : BaseType( geometryType, elementGeometry, order )
396 inline explicit Quadrature(
const IntegrationPointListType& ipList )
425 const FieldType &
weight(
size_t i )
const 427 return ipList().weight( i );
GeometryType geometryType() const
obtain GeometryType for this integration point list
Definition: quadrature.hh:293
QuadraturePointWrapper(const QuadratureType &quadrature, const unsigned int quadPoint)
Definition: quadrature.hh:53
const unsigned int quadPoint_
Definition: quadrature.hh:50
int nop() const
obtain the number of integration points
Definition: quadrature.hh:226
int order() const
obtain order of the integration point list
Definition: quadrature.hh:276
const QuadratureType & quadrature_
Definition: quadrature.hh:49
const FieldType & weight(size_t i) const
obtain weight of i-th integration point
Definition: quadrature.hh:425
actual interface class for integration point lists
Definition: quadrature.hh:118
wrapper for a (Quadrature,int) pair
Definition: quadrature.hh:40
FieldImp FieldType
Definition: quadrature.hh:121
const IntegrationPointListType & ipList() const
obtain a reference the actual implementation
Definition: quadrature.hh:217
Quadrature(const IntegrationPointListType &ipList)
create an integration point list from an implementation
Definition: quadrature.hh:396
const QuadratureType & quadrature() const
Definition: quadrature.hh:65
Traits::IntegrationPointListType IntegrationPointListType
type of integration point list implementation
Definition: quadrature.hh:135
Quadrature(const GeometryType &geometryType, int order)
create a quadrature for a given geometry and order
Definition: quadrature.hh:360
Quadrature QuadratureType
Definition: quadrature.hh:43
IntegrationPointListType::CoordinateType CoordinateType
type of local coordinate vectors
Definition: quadrature.hh:344
Traits::IntegrationPointListType IntegrationPointListType
type of the implementation (this must actually be a quadrature implementation)
Definition: quadrature.hh:341
unsigned int point() const
Definition: quadrature.hh:70
static Quadrature::CoordinateType coordinate(const QuadraturePointWrapper< Quadrature > &x)
extract the real coordinate from a point
Definition: quadrature.hh:92
IntegrationPointList(const IntegrationPointList &org)
copy constructor
Definition: quadrature.hh:202
IntegrationPointList(const IntegrationPointListType &ipList)
create an integration point list from an implementation
Definition: quadrature.hh:193
Definition: defaultquadratures.hh:33
Definition: coordinate.hh:4
QuadraturePointWrapper< ThisType > QuadraturePointWrapperType
Definition: quadrature.hh:140
size_t id() const
obtain the identifier of the integration point list
Definition: quadrature.hh:258
const CoordinateType & point(size_t i) const
obtain coordinates of i-th integration point
Definition: quadrature.hh:242
Quadrature(const GeometryType &geometryType, const GeometryType &elementGeometry, int order)
create a quadrature for a given geometry and order
Definition: quadrature.hh:380
IntegrationPointList(const GeometryType &geometryType, int order)
create a quadrature for a given geometry type and order
Definition: quadrature.hh:159
IntegrationPointList(const GeometryType &geometryType, const GeometryType &elementGeometry, int order)
create a quadrature for a given geometry type and order
Definition: quadrature.hh:177
provide a single instance pool of quadratures
Definition: quadprovider.hh:103
const IntegrationPointListType & ipList_
Definition: quadrature.hh:146
IntegrationPointListType::CoordinateType CoordinateType
type of coordinate
Definition: quadrature.hh:138
FieldImp FieldType
Definition: quadrature.hh:324
actual interface class for quadratures
Definition: quadrature.hh:320