dune-fem 2.8.0
|
#include <dune/fem/quadrature/lumpingquadrature.hh>
Public Types | |
typedef FieldImp | FieldType |
typedef BaseType::CoordinateType | CoordinateType |
enum | { codimension = 0 } |
to be revised, look at caching quad More... | |
Public Member Functions | |
LumpingQuadrature (const GeometryType >, int order, int id) | |
constructor filling the list of points and weights. | |
virtual GeometryType | geometryType () const |
virtual int | order () const |
obtain order of the integration point list | |
const FieldType & | weight (size_t i) const |
obtain weight of i-th integration point | |
const CoordinateType & | point (size_t i) const |
obtain coordinates of i-th integration point | |
size_t | nop () const |
obtain the number of integration points | |
size_t | id () const |
obtain the identifier of the integration point list | |
virtual std::vector< ElementCoordinateType > | interpolationPoints (const int reqDim) const |
returns list of element interpolation points for a given face quadrature | |
virtual bool | isFaceInterpolationQuadrature (const size_t numShapeFunctions) const |
return true if quadrature is also a set of interpolation points for a given number of shape functions | |
Static Public Member Functions | |
static std::size_t | maxOrder () |
maximal order of available quadratures | |
Static Public Attributes | |
static constexpr auto | dimension = Dune::GeometryType(geometryId).dim() |
Protected Types | |
typedef FieldVector< FieldType, dim+1 > | ElementCoordinateType |
Protected Member Functions | |
void | addIntegrationPoint (const CoordinateType &point) |
Adds an integration point to the list. | |
void | addQuadraturePoint (const CoordinateType &point, const FieldType weight) |
Adds a point-weight pair to the quadrature. | |
void | setIntegrationPoints (std::vector< CoordinateType > &&points) |
Overwrites integration point list | |
Protected Attributes | |
std::vector< FieldType > | weights_ |
std::vector< CoordinateType > | points_ |
const size_t | id_ |
Define a lumping quadrature for all geometries. Note, however, that this may not make sense for anything else than simplices or maybe hexagonal grids. For simplicial meshes the quadrature formula is exact on linear polynomials and hence the quadrature error is quadratic in the mesh-size. A mass-matrix assembled with the caching quadrature will be diagonal in the context of Lagrange spaces. Generally, it is a bad idea to use mass-lumping for anything else than linear (or maybe bilinear) finite elements.
There are probably much more efficient ways to perform mass-lumping. This "quadrature" approach is convenient, however, as it can simply be plugged into existing code by replacing the quadrature rules.
typedef BaseType::CoordinateType Dune::Fem::LumpingQuadrature< FieldImp, geometryId >::CoordinateType |
|
protectedinherited |
typedef FieldImp Dune::Fem::LumpingQuadrature< FieldImp, geometryId >::FieldType |
|
inherited |
|
inline |
constructor filling the list of points and weights.
[in] | gt | geometry type for which a quadrature is desired |
[in] | order | order, ignored |
[in] | id | unique identifier, ignored |
|
inlineprotectedinherited |
Adds an integration point to the list.
This method allows derived classes to add integration points to the list. This mehtod should only be used within the constructor of the derived class.
|
inlineprotectedinherited |
Adds a point-weight pair to the quadrature.
This method allows derived classes to add quadrature points (and their respective weights) to the list. This mehtod should only be used within the constructor of the derived class.
|
inlinevirtual |
|
inlineinherited |
obtain the identifier of the integration point list
The identifier of an integration point list must be globally unique. Even integration point lists for different dimensions must have different identifiers.
|
inlinevirtualinherited |
returns list of element interpolation points for a given face quadrature
|
inlinevirtualinherited |
return true if quadrature is also a set of interpolation points for a given number of shape functions
|
inlinestatic |
maximal order of available quadratures
|
inlineinherited |
obtain the number of integration points
|
inlinevirtual |
obtain order of the integration point list
The order of a quadrature is the maximal polynomial degree that is guaranteed to be integrated exactly by the quadrature.
In case of an integration point list, the definition of this value is left to the implementor.
Implements Dune::Fem::IntegrationPointListImp< FieldImp, dim >.
|
inlineinherited |
obtain coordinates of i-th integration point
This method returns a reference to the coordinates of the i-th integration point for 0 <= i < nop(). The integration point is given in local coordinates, i.e., coordinates with respect to the reference element.
[in] | i | number of the integration point, 0 <= i < nop() |
|
inlineprotectedinherited |
Overwrites integration point list
|
inlineinherited |
obtain weight of i-th integration point
This method returns the weight of the i-th integration point for 0 <= i < nop() within the quadrature.
[in] | i | number of the integration point, 0 <= i < nop() |
|
staticconstexpr |
|
protectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |