1#ifndef DUNE_FEM_ELEMENTQUADRATURE_HH
2#define DUNE_FEM_ELEMENTQUADRATURE_HH
4#include <dune/geometry/quadraturerules.hh>
17 template<
typename Gr
idPartImp,
class IntegrationPo
intList >
57 template<
typename Gr
idPartImp,
int codim,
template <
class,
int>
class QuadratureTraits = DefaultQuadratureTraits >
62 template<
class Gr
idPartImp,
int codim,
template<
class,
int >
class QuadratureTraits >
66 typedef typename GridPartImp :: ctype
ctype;
85 template<
typename Gr
idPartImp,
template<
class,
int >
class QuadratureTraits >
99 enum { codimension = 0 };
102 enum { dimension = GridPartType :: dimension };
119 typedef typename GridPartType::template Codim< 0 >::EntityType
EntityType;
124 using BaseType::quadImp;
128 const GeometryType geomType = entity.type();
129 if( checkGeomType && ! geomType.isNone() )
137 return AgglomerationType::computeQuadrature( entity, quadKey );
151 :
BaseType( createQuadrature( entity, quadKey, checkGeomType ) )
187 return quadImp().weight( i );
194 template<
class Gr
idPartImp,
template<
class,
int >
class QuadratureTraits >
197 < GridPartImp, 1, ElementQuadratureTraits< GridPartImp, 1, QuadratureTraits > >
204 enum { codimension = 1 };
214 using BaseType :: quadImp;
218 enum { dimension = GridPartType :: dimension };
239 typedef typename IntegrationTraits :: IntegrationPointListType :: CoordinateType
259 typename BaseType :: Side side )
260 :
BaseType( gridPart, intersection, quadKey, side )
291 return quadImp().weight( i );
295 template<
class Gr
idPart,
class Entity>
296 static inline auto elementQuadrature(
const GridPart& gridPart,
const Entity& entity,
unsigned quadOrder)
Definition: bindguard.hh:11
static auto elementQuadrature(const GridPart &gridPart, const Entity &entity, unsigned quadOrder)
Definition: elementquadrature.hh:296
Agglomeration is a simple quadrature for polyhedral cells based on sub triangulation
Definition: agglomerationquadrature.hh:22
integration point list on the codim-0 reference element
Definition: elementpointlist.hh:49
constructor
Definition: elementpointlist.hh:57
quadrature on the codim-0 reference element
Definition: elementquadrature.hh:58
Definition: elementquadrature.hh:64
@ codimension
Definition: elementquadrature.hh:72
Quadrature< ctype, dimension-codim, QuadratureTraits > IntegrationPointListType
Definition: elementquadrature.hh:75
GridPartImp::ctype ctype
Definition: elementquadrature.hh:66
Quadrature< ctype, dimension, QuadratureTraits >::CoordinateType CoordinateType
Definition: elementquadrature.hh:79
@ dimension
Definition: elementquadrature.hh:69
constructor
Definition: elementquadrature.hh:88
IteratorType begin() const noexcept
Definition: elementquadrature.hh:181
QuadraturePointWrapper< ThisType > QuadraturePointWrapperType
type of the quadrature point
Definition: elementquadrature.hh:114
ElementIntegrationPointList< GridPartImp, 0, IntegrationTraits > BaseType
Definition: elementquadrature.hh:93
ElementQuadrature(const ThisType &org)
copy constructor
Definition: elementquadrature.hh:172
const RealType & weight(size_t i) const
obtain weight of i-th integration point
Definition: elementquadrature.hh:185
GridPartImp GridPartType
type of the grid partition
Definition: elementquadrature.hh:96
ElementQuadrature(const GeometryType &type, const QuadratureKeyType &quadKey)
constructor
Definition: elementquadrature.hh:160
BaseType::QuadratureKeyType QuadratureKeyType
type of quadrature identifier on user side (default is the order of quadrature)
Definition: elementquadrature.hh:111
IteratorType end() const noexcept
Definition: elementquadrature.hh:182
IntegrationPointListType createQuadrature(const EntityType &entity, const QuadratureKeyType &quadKey, const bool checkGeomType)
Definition: elementquadrature.hh:126
GridPartType::ctype RealType
type for reals (usually double)
Definition: elementquadrature.hh:105
ElementQuadratureTraits< GridPartImp, 0, QuadratureTraits > IntegrationTraits
Definition: elementquadrature.hh:92
ElementQuadrature(const EntityType &entity, const QuadratureKeyType &quadKey, const bool checkGeomType=true)
constructor
Definition: elementquadrature.hh:150
QuadraturePointIterator< ThisType > IteratorType
type of iterator
Definition: elementquadrature.hh:116
GridPartType::template Codim< 0 >::EntityType EntityType
Definition: elementquadrature.hh:119
IntegrationTraits::CoordinateType CoordinateType
type for coordinates in the codim-0 reference element
Definition: elementquadrature.hh:108
BaseType::IntegrationPointListType IntegrationPointListType
Definition: elementquadrature.hh:121
GridPartType::ctype RealType
type for reals (usually double)
Definition: elementquadrature.hh:221
QuadraturePointWrapper< ThisType > QuadraturePointWrapperType
type of the quadrature point
Definition: elementquadrature.hh:234
ElementQuadrature(const GridPartType &gridPart, const IntersectionType &intersection, const QuadratureKeyType &quadKey, typename BaseType ::Side side)
constructor
Definition: elementquadrature.hh:256
IteratorType begin() const noexcept
Definition: elementquadrature.hh:277
GridPartImp GridPartType
type of the grid partition
Definition: elementquadrature.hh:201
ElementQuadrature(const ElementQuadrature &org)
copy constructor
Definition: elementquadrature.hh:267
IteratorType end() const noexcept
Definition: elementquadrature.hh:278
const RealType & weight(size_t i) const
Definition: elementquadrature.hh:289
ThisType NonConformingQuadratureType
type of quadrature for use on non-conforming intersections
Definition: elementquadrature.hh:243
IntersectionIteratorType::Intersection IntersectionType
Definition: elementquadrature.hh:225
GridPartType::IntersectionIteratorType IntersectionIteratorType
type of the intersection iterator
Definition: elementquadrature.hh:224
IntegrationTraits::IntegrationPointListType::CoordinateType LocalCoordinateType
type of coordinate in codim-1 reference element
Definition: elementquadrature.hh:240
BaseType::QuadratureKeyType QuadratureKeyType
type of quadrature identifier on user side (default is the order of quadrature)
Definition: elementquadrature.hh:231
IntegrationTraits::CoordinateType CoordinateType
type of coordinates in codim-0 reference element
Definition: elementquadrature.hh:228
QuadraturePointIterator< ThisType > IteratorType
type of iterator
Definition: elementquadrature.hh:236
wrapper for a (Quadrature,int) pair
Definition: quadrature.hh:43
iterator over quadrature points
Definition: quadrature.hh:106
actual interface class for quadratures
Definition: quadrature.hh:405