1#ifndef DUNE_FEM_QUADRATURE_GEOMETRIC_GEOMETRY_HH
2#define DUNE_FEM_QUADRATURE_GEOMETRIC_GEOMETRY_HH
10#include "quadrature.hh"
21 template<
class QuadratureRule >
22 class GeometryQuadrature
23 :
public GeometricQuadrature< typename QuadratureRule::CoordType, QuadratureRule::d, QuadratureRule::d, GeometryQuadrature< QuadratureRule > >
25 using ThisType = GeometryQuadrature< QuadratureRule >;
26 using BaseType = GeometricQuadrature< typename QuadratureRule::CoordType, QuadratureRule::d, QuadratureRule::d, GeometryQuadrature< QuadratureRule > >;
30 using QuadratureRuleType = QuadratureRule;
33 using FieldType =
typename BaseType::FieldType;
36 using CoordinateType =
typename BaseType::CoordinateType;
38 using LocalCoordinateType =
typename BaseType::LocalCoordinateType;
44 explicit GeometryQuadrature (
const QuadratureRuleType &quadratureRule )
45 : quadratureRule_( quadratureRule )
55 GeometryQuadrature (
const ThisType & ) =
default;
58 GeometryQuadrature ( ThisType && ) =
default;
61 GeometryQuadrature &operator= (
const ThisType & ) =
default;
64 GeometryQuadrature &operator= ( ThisType && ) =
default;
76 int order ()
const {
return quadratureRule().order(); }
79 std::size_t nop ()
const {
return quadratureRule().size(); }
82 const CoordinateType &point ( std::size_t i )
const
84 return quadratureRule()[ i ].position();
88 const LocalCoordinateType &localPoint ( std::size_t i )
const
94 FieldType weight ( std::size_t i )
const
96 return quadratureRule()[ i ].weight();
102 const QuadratureRuleType &quadratureRule ()
const {
return quadratureRule_.get(); }
104 std::reference_wrapper< const QuadratureRuleType > quadratureRule_;
Unique label for each type of entities that can occur in DUNE grids.
Definition: type.hh:114
Dune namespace.
Definition: alignedallocator.hh:13
A unique label for each type of element that can occur in a grid.