Dune-Fufem 2.11-git
Loading...
Searching...
No Matches
QuadratureRuleKey Class Reference

A token that specifies a quadrature rule. More...

#include <dune/fufem/quadraturerules/quadraturerulecache.hh>

Public Member Functions

 QuadratureRuleKey ()
 Default constructor, same as QuadratureRuleKey(0,0)
 
template<class LocalFiniteElement >
 QuadratureRuleKey (const LocalFiniteElement &fe)
 Create a key for a quadrature rule that can integrate a given local basis exactly.
 
 QuadratureRuleKey (const Dune::GeometryType &gt, const int order, const int refinement=0, bool lumping=false)
 Constructor with given element type, order and refinement level.
 
 QuadratureRuleKey (const int dim, const int order, const int refinement=0, bool lumping=false)
 Constructor for rules to integrate analytical functions (i.e., not related to a grid)
 
bool operator< (const QuadratureRuleKey &other) const
 defines order relation on QuadratureRuleKeys
 
const Dune::GeometryTypegeometryType () const
 
void setGeometryType (const Dune::GeometryType &gt)
 
int order () const
 
void setOrder (int order)
 
int refinement () const
 
void setRefinement (int refinement)
 
bool lumping () const
 
void setLumping (bool lumping)
 
QuadratureRuleKey derivative () const
 
QuadratureRuleKey sum (const QuadratureRuleKey &other) const
 
QuadratureRuleKey product (const QuadratureRuleKey &other) const
 
QuadratureRuleKey square () const
 

Protected Attributes

Dune::GeometryType gt_
 
int order_
 
int refinement_
 
bool lumping_
 

Detailed Description

A token that specifies a quadrature rule.

A QuadratureRuleKey represents a certain class of polynomials on a reference polyhedron that should be integrated exactly by the desired quadrature rule.

The QuadratureRuleKey especially encodes the polynomial order and reference polyhedron (GeometryType). Here order k indicates polynomials of degree atmost k with one exception: For reference polyhedrals with a tensor structure, polynomials with corresponding tensor structure of degree at most k for each tensor direction are also allowed. E.g. bi-cubic polynomials on a square are encoded as order 2 (although they are polynomials of degree 4).

Constructor & Destructor Documentation

◆ QuadratureRuleKey() [1/4]

QuadratureRuleKey::QuadratureRuleKey ( )
inline

Default constructor, same as QuadratureRuleKey(0,0)

◆ QuadratureRuleKey() [2/4]

template<class LocalFiniteElement >
QuadratureRuleKey::QuadratureRuleKey ( const LocalFiniteElement &  fe)
inline

Create a key for a quadrature rule that can integrate a given local basis exactly.

◆ QuadratureRuleKey() [3/4]

QuadratureRuleKey::QuadratureRuleKey ( const Dune::GeometryType gt,
const int  order,
const int  refinement = 0,
bool  lumping = false 
)
inline

Constructor with given element type, order and refinement level.

Parameters
gtThe Dune::GeometryType the rule is defined on
orderOrder of the quadrature rule
refinementFor composite rules: number of subdivision steps of the original rule [DEFAULT = 0]
lumpingwhether or not we have a lumped quadrule [DEFAULT = false]

◆ QuadratureRuleKey() [4/4]

QuadratureRuleKey::QuadratureRuleKey ( const int  dim,
const int  order,
const int  refinement = 0,
bool  lumping = false 
)
inline

Constructor for rules to integrate analytical functions (i.e., not related to a grid)

Parameters
dimdimension of domain
orderorder of the quadrature rule
refinementfor composite rules: number of subdivision steps of the original rule [DEFAULT = 0]
lumpingwhether or not we have a lumped quadrule [DEFAULT = false]

Member Function Documentation

◆ derivative()

QuadratureRuleKey QuadratureRuleKey::derivative ( ) const
inline

◆ geometryType()

const Dune::GeometryType & QuadratureRuleKey::geometryType ( ) const
inline

◆ lumping()

bool QuadratureRuleKey::lumping ( ) const
inline

◆ operator<()

bool QuadratureRuleKey::operator< ( const QuadratureRuleKey other) const
inline

defines order relation on QuadratureRuleKeys

Parameters
otherQuadratureRuleKey to compare with
Returns
true if passed QRKey is 'larger' than *this

◆ order()

int QuadratureRuleKey::order ( ) const
inline

◆ product()

QuadratureRuleKey QuadratureRuleKey::product ( const QuadratureRuleKey other) const
inline

◆ refinement()

int QuadratureRuleKey::refinement ( ) const
inline

◆ setGeometryType()

void QuadratureRuleKey::setGeometryType ( const Dune::GeometryType gt)
inline

◆ setLumping()

void QuadratureRuleKey::setLumping ( bool  lumping)
inline

◆ setOrder()

void QuadratureRuleKey::setOrder ( int  order)
inline

◆ setRefinement()

void QuadratureRuleKey::setRefinement ( int  refinement)
inline

◆ square()

QuadratureRuleKey QuadratureRuleKey::square ( ) const
inline

◆ sum()

QuadratureRuleKey QuadratureRuleKey::sum ( const QuadratureRuleKey other) const
inline

Member Data Documentation

◆ gt_

Dune::GeometryType QuadratureRuleKey::gt_
protected

◆ lumping_

bool QuadratureRuleKey::lumping_
protected

◆ order_

int QuadratureRuleKey::order_
protected

◆ refinement_

int QuadratureRuleKey::refinement_
protected

The documentation for this class was generated from the following file: