1#ifndef DUNE_FEM_DUNEQUADRATURES_HH
2#define DUNE_FEM_DUNEQUADRATURES_HH
8#include <dune/fem/quadrature/quadratureimp.hh>
9#include <dune/fem/quadrature/femquadratures.hh>
27 template<
typename FieldImp,
int dim >
32 typedef FieldImp FieldType;
34 enum { dimension = dim };
52 enum { highest_order = 44 };
71 elementGeometry_( geometry )
79 order_ = rule.
order();
80 assert(
order <= order_ );
83 const IteratorType endit = rule.end();
84 for( IteratorType it = rule.begin(); it != endit; ++it )
99 return elementGeometry_;
106 return highest_order;
112 template<
class FieldType,
int dim >
113 struct DuneQuadratureTraits
115 typedef QuadratureRulesFactory< FieldType, dim > SimplexQuadratureType;
116 typedef QuadratureRulesFactory< FieldType, dim > CubeQuadratureType;
117 typedef PolyhedronQuadrature< FieldType, dim > PolyhedronQuadratureType;
119 typedef QuadratureImp< FieldType, dim > IntegrationPointListType;
121 typedef int QuadratureKeyType ;
124 template<
class FieldType >
125 struct DuneQuadratureTraits< FieldType, 0 >
127 typedef QuadratureRulesFactory< FieldType, 0 > PointQuadratureType;
129 typedef QuadratureImp< FieldType, 0 > IntegrationPointListType;
131 typedef int QuadratureKeyType ;
134 template<
class FieldType >
135 struct DuneQuadratureTraits< FieldType, 1 >
137 typedef QuadratureRulesFactory< FieldType, 1 > LineQuadratureType;
139 typedef QuadratureImp< FieldType, 1 > IntegrationPointListType;
141 typedef int QuadratureKeyType ;
144 template<
class FieldType >
145 struct DuneQuadratureTraits< FieldType, 3 >
147 typedef QuadratureRulesFactory< FieldType, 3 > SimplexQuadratureType;
148 typedef QuadratureRulesFactory< FieldType, 3 > CubeQuadratureType;
150 typedef QuadratureRulesFactory< FieldType, 3 > PrismQuadratureType;
151 typedef QuadratureRulesFactory< FieldType, 3 > PyramidQuadratureType;
153 typedef PolyhedronQuadrature< FieldType, 3 > PolyhedronQuadratureType;
155 typedef QuadratureImp< FieldType, 3 > IntegrationPointListType;
157 typedef int QuadratureKeyType ;
size_t id() const
obtain the identifier of the integration point list
Definition: quadratureimp.hh:122
Generic implementation of a Dune quadrature.
Definition: quadratureimp.hh:196
void addQuadraturePoint(const CoordinateType &point, const FieldType weight)
Adds a point-weight pair to the quadrature.
Definition: quadratureimp.hh:270
BaseType::CoordinateType CoordinateType
type of local coordinates
Definition: quadratureimp.hh:207
quadrature implementation based on the standard DUNE quadratures
Definition: dunequadratures.hh:30
int order() const
obtain order of the integration point list
Definition: dunequadratures.hh:90
GeometryType geometryType() const
Definition: dunequadratures.hh:97
QuadratureRulesFactory(const GeometryType &geometry, const int order, const size_t id)
constructor filling the list of points and weights
Definition: dunequadratures.hh:67
static unsigned int maxOrder()
maximal order of available quadratures
Definition: dunequadratures.hh:104
vector space out of a tensor product of fields.
Definition: fvector.hh:92
Unique label for each type of entities that can occur in DUNE grids.
Definition: type.hh:114
Abstract base class for quadrature rules.
Definition: quadraturerules.hh:214
virtual int order() const
return order
Definition: quadraturerules.hh:237
std::vector< QuadraturePoint< ct, dim > >::const_iterator iterator
Definition: quadraturerules.hh:245
A container for all quadrature rules of dimension dim
Definition: quadraturerules.hh:260
@ GaussLobatto
Gauss-Lobatto rules.
Definition: quadraturerules.hh:176
Dune namespace.
Definition: alignedallocator.hh:13
A unique label for each type of element that can occur in a grid.