dune-fem 2.8.0
Loading...
Searching...
No Matches
lumpingquadrature.hh
Go to the documentation of this file.
1#ifndef DUNE_FEM_LUMPING_QUADRATURE_HH
2#define DUNE_FEM_LUMPING_QUADRATURE_HH
3
4#include <dune/geometry/referenceelements.hh>
5#include <dune/geometry/type.hh>
6
8
9namespace Dune {
10
11namespace Fem {
12
27template<class FieldImp, Dune::GeometryType::Id geometryId>
29 : public QuadratureImp<FieldImp, Dune::GeometryType(geometryId).dim()>
30{
31 public:
32 typedef FieldImp FieldType;
33 static constexpr auto dimension = Dune::GeometryType(geometryId).dim();
34
35 private:
38
39 public:
41
48 LumpingQuadrature(const GeometryType& gt, int order, int id)
49 : BaseType(id)
50 {
51 const auto &refElement = Dune::ReferenceElements< FieldType, dimension >::general( gt );
52 const auto numCorners = refElement.size( dimension );
53 for( auto i = decltype( numCorners ){ 0 }; i < numCorners; ++i )
54 this->addQuadraturePoint( refElement.position( i, dimension ), refElement.volume() / numCorners );
55 }
56
59 virtual GeometryType geometryType() const { return Dune::GeometryType(geometryId); }
62 virtual int order () const { return 1; }
63
65 static std::size_t maxOrder () { return 1; }
66};
67
68template<class FieldType, int dimension>
70{
72
73 static constexpr Dune::GeometryType::Id simplexId = Dune::GeometryTypes::simplex(dimension);
74 static constexpr Dune::GeometryType::Id cubeId = Dune::GeometryTypes::cube(dimension);
75 static constexpr Dune::GeometryType::Id prismId = Dune::GeometryTypes::prism ;
76 static constexpr Dune::GeometryType::Id pyramidId = Dune::GeometryTypes::pyramid;
77
84
85 typedef int QuadratureKeyType;
86};
87
88// LumpingQuadrature uses CachingQuadrature with a different traits class for creating the quadratures.
89template<class GridPartImp, int codim>
91
92} // Fem
93
94} // Dune
95
96
97#endif // DUNE_FEM_LUMPING_QUADRATURE_HH
Definition: bindguard.hh:11
quadrature class supporting base function caching
Definition: cachingquadrature.hh:41
Definition: lumpingquadrature.hh:30
static std::size_t maxOrder()
maximal order of available quadratures
Definition: lumpingquadrature.hh:65
static constexpr auto dimension
Definition: lumpingquadrature.hh:33
BaseType::CoordinateType CoordinateType
Definition: lumpingquadrature.hh:40
virtual GeometryType geometryType() const
Definition: lumpingquadrature.hh:59
LumpingQuadrature(const GeometryType &gt, int order, int id)
constructor filling the list of points and weights.
Definition: lumpingquadrature.hh:48
FieldImp FieldType
Definition: lumpingquadrature.hh:32
virtual int order() const
obtain order of the integration point list
Definition: lumpingquadrature.hh:62
Definition: lumpingquadrature.hh:70
int QuadratureKeyType
Definition: lumpingquadrature.hh:85
static constexpr Dune::GeometryType::Id simplexId
Definition: lumpingquadrature.hh:73
QuadratureImp< FieldType, dimension > IntegrationPointListType
Definition: lumpingquadrature.hh:71
static constexpr Dune::GeometryType::Id pyramidId
Definition: lumpingquadrature.hh:76
static constexpr Dune::GeometryType::Id prismId
Definition: lumpingquadrature.hh:75
LumpingQuadrature< FieldType, prismId > PrismQuadratureType
Definition: lumpingquadrature.hh:80
LumpingQuadrature< FieldType, pyramidId > PyramidQuadratureType
Definition: lumpingquadrature.hh:81
LumpingQuadrature< FieldType, cubeId > CubeQuadratureType
Definition: lumpingquadrature.hh:79
static constexpr Dune::GeometryType::Id cubeId
Definition: lumpingquadrature.hh:74
SimplexQuadratureType LineQuadratureType
Definition: lumpingquadrature.hh:82
SimplexQuadratureType PointQuadratureType
Definition: lumpingquadrature.hh:83
LumpingQuadrature< FieldType, simplexId > SimplexQuadratureType
Definition: lumpingquadrature.hh:78
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