dune-fem 2.8.0
Loading...
Searching...
No Matches
quadrature/geometric/geometry.hh
Go to the documentation of this file.
1#ifndef DUNE_FEM_QUADRATURE_GEOMETRIC_GEOMETRY_HH
2#define DUNE_FEM_QUADRATURE_GEOMETRIC_GEOMETRY_HH
3
4#include <cstddef>
5
6#include <functional>
7
8#include <dune/geometry/type.hh>
9
10#include "quadrature.hh"
11
12namespace Dune
13{
14
15 namespace Fem
16 {
17
18 // GeometryQuadrature
19 // ------------------
20
21 template< class QuadratureRule >
23 : public GeometricQuadrature< typename QuadratureRule::CoordType, QuadratureRule::d, QuadratureRule::d, GeometryQuadrature< QuadratureRule > >
24 {
27
28 public:
30 using QuadratureRuleType = QuadratureRule;
31
34
39
44 explicit GeometryQuadrature ( const QuadratureRuleType &quadratureRule )
45 : quadratureRule_( quadratureRule )
46 {}
47
55 GeometryQuadrature ( const ThisType & ) = default;
56
58 GeometryQuadrature ( ThisType && ) = default;
59
61 GeometryQuadrature &operator= ( const ThisType & ) = default;
62
65
73 Dune::GeometryType type () const { return quadratureRule().type(); }
74
76 int order () const { return quadratureRule().order(); }
77
79 std::size_t nop () const { return quadratureRule().size(); }
80
82 const CoordinateType &point ( std::size_t i ) const
83 {
84 return quadratureRule()[ i ].position();
85 }
86
88 const LocalCoordinateType &localPoint ( std::size_t i ) const
89 {
90 return point( i );
91 }
92
94 FieldType weight ( std::size_t i ) const
95 {
96 return quadratureRule()[ i ].weight();
97 }
98
101 private:
102 const QuadratureRuleType &quadratureRule () const { return quadratureRule_.get(); }
103
104 std::reference_wrapper< const QuadratureRuleType > quadratureRule_;
105 };
106
107 } // namespace Fem
108
109} // namespace Dune
110
111#endif // #ifndef DUNE_FEM_QUADRATURE_GEOMETRIC_GEOMETRY_HH
Definition: bindguard.hh:11
Definition: quadrature/geometric/geometry.hh:24
const LocalCoordinateType & localPoint(std::size_t i) const
return local coordinates of -th quadrature point
Definition: quadrature/geometric/geometry.hh:88
GeometryQuadrature(const QuadratureRuleType &quadratureRule)
Definition: quadrature/geometric/geometry.hh:44
QuadratureRule QuadratureRuleType
type of Dune::Geometry::QuadratureRule
Definition: quadrature/geometric/geometry.hh:30
typename BaseType::FieldType FieldType
field type
Definition: quadrature/geometric/geometry.hh:33
FieldType weight(std::size_t i) const
return quadrature weight
Definition: quadrature/geometric/geometry.hh:94
std::size_t nop() const
return number of quadrature points
Definition: quadrature/geometric/geometry.hh:79
typename BaseType::LocalCoordinateType LocalCoordinateType
local coordinate type
Definition: quadrature/geometric/geometry.hh:38
typename BaseType::CoordinateType CoordinateType
coordinate type
Definition: quadrature/geometric/geometry.hh:36
GeometryQuadrature & operator=(const ThisType &)=default
assignment operator
Dune::GeometryType type() const
return geometry type
Definition: quadrature/geometric/geometry.hh:73
GeometryQuadrature(const ThisType &)=default
copy constructor
const CoordinateType & point(std::size_t i) const
return coordinates of -th quadrature point
Definition: quadrature/geometric/geometry.hh:82
GeometryQuadrature(ThisType &&)=default
move constructor
int order() const
return order
Definition: quadrature/geometric/geometry.hh:76
Definition: geometric/quadrature.hh:24
Dune::FieldVector< FieldType, dimension > CoordinateType
coordinate type
Definition: geometric/quadrature.hh:37
Field FieldType
field type
Definition: geometric/quadrature.hh:29
Dune::FieldVector< FieldType, mydimension > LocalCoordinateType
local coordinate type
Definition: geometric/quadrature.hh:39