concepts::QuadratureRule2dQuadDuffy Class Reference
Class representing the Generalized Duffy quadrature rule in 2d, , that is for the standard duffy integration rule. More...
#include <quadRule.hh>
Public Member Functions | |
virtual const Real * | abscissas (uint i) const |
Returns the quadrature abcissas in the i-th direction. More... | |
virtual const bool | domain () const |
Method delivers if the integration points and weights are computed in [-1,1]^2 or in [0,1]^2. More... | |
const uint | n (uint i=0) const |
Returns the number of quadrature points. More... | |
void | printData () const |
virtual bool | quadratureData (const uint i, Real3d &q, Real &w) const |
Method delivers the i-th quadrature point. More... | |
QuadratureRule2dQuadDuffy (Real beta, uint nx, uint ny, uint noVtx=0) | |
Constructor. More... | |
virtual const bool | tensor () const |
Method delivers information about the quadrature rule structure. More... | |
virtual const Real * | weights (uint i=0) const |
Returns the i-th weight, belonging to (x_i,y_i) as nontensored. More... | |
virtual | ~QuadratureRule2dQuadDuffy () |
Protected Member Functions | |
virtual std::ostream & | info (std::ostream &os) const |
Returns information in an output stream. More... | |
Protected Attributes | |
const Real * | intX_ |
Abscissas. More... | |
const Real * | intY_ |
Private Member Functions | |
void | compute_ (const Real2d S, const Real2d B, const Real2d C, const Real beta, const uint nx, const uint ny, Real *&abscXP, Real *&abscYP, Real *&wP) |
Routine computes generalized duffy quadrature points on the triangle conv(S,B,C), where S is the coordinate of the singularity vertex. More... | |
Private Attributes | |
Real | beta_ |
uint | n_ |
const Real * | weights_ |
Detailed Description
Class representing the Generalized Duffy quadrature rule in 2d, , that is for the standard duffy integration rule.
The quadrature rule is not tensored and is most effective to integrate singularities, for .
The weights are given in .
This class is motivated by the paper "Generalized Duffy Transformation for Integrating Vertex Singularites" by Mousavi / Sukumar
The quadrature rule depends on the duffy parameter beta
. beta
should be chosen such that
.
Note that for too big beta
, the quadrature points in become very close to the origin. This should be taken into account, regarding mashine precision. Due to this fact the singular local vertex by default is in origin.
The abscissas are computed on .
The internal compute routine computes generalized duffy points on a triangle. With that, the method can be used for arbitrary reference geometries that can be subdivided into triangles with common singularity vertex.
The quadrature points on the transformed triangles are computed with underlying Gauss-Legrendre points, whose number can be chosen individual in each direction in the transformed quad.
Definition at line 481 of file quadRule.hh.
Constructor & Destructor Documentation
◆ QuadratureRule2dQuadDuffy()
concepts::QuadratureRule2dQuadDuffy::QuadratureRule2dQuadDuffy | ( | Real | beta, |
uint | nx, | ||
uint | ny, | ||
uint | noVtx = 0 |
||
) |
Constructor.
The singular vertex is by default set to zero. This is ok, since when building the mesh one can place the geometry s.t. the first elements vertex lies on the singularity.
- Parameters
-
beta generalized duffy transformation parameter nx number of quadrature points of underlying Gauss-Legendre points in x-direction on transformed square. ny number of quadrature points of underlying Gauss-Legendre points in y-direction on transformed square. noVtx number of local vertex
◆ ~QuadratureRule2dQuadDuffy()
|
virtual |
Member Function Documentation
◆ abscissas()
|
inlinevirtualinherited |
Returns the quadrature abcissas in the i-th direction.
- Parameters
-
i i = 0 : x-direction, i = 1 : y-direction
Implements concepts::QuadratureRule.
Definition at line 360 of file quadRule.hh.
◆ compute_()
|
private |
Routine computes generalized duffy quadrature points on the triangle conv(S,B,C), where S is the coordinate of the singularity vertex.
- Parameters
-
S,B,C Triangle points beta duffy parameter nx number of points of underlying quadrature in x direction ny number of points of underlying quadrature in y direction abscXP abscissa points in x direction abscYP abscissa points in y direction wP weights
◆ domain()
|
inlinevirtual |
Method delivers if the integration points and weights are computed in [-1,1]^2 or in [0,1]^2.
Return true
if integration points are computed in
or false
if they are computed in
.
Implements concepts::QuadratureRule2d.
Definition at line 520 of file quadRule.hh.
◆ info()
|
protectedvirtual |
Returns information in an output stream.
Reimplemented from concepts::OutputOperator.
◆ n()
|
inlinevirtual |
Returns the number of quadrature points.
Implements concepts::QuadratureRule2d.
Definition at line 511 of file quadRule.hh.
◆ printData()
void concepts::QuadratureRule2dQuadDuffy::printData | ( | ) | const |
◆ quadratureData()
|
virtual |
Method delivers the i-th quadrature point.
and its belonging i-th weight. If i exceeds the numer of quadrature, false
is returned.
Implements concepts::QuadratureRule.
◆ tensor()
|
inlinevirtual |
Method delivers information about the quadrature rule structure.
Returns true for tensor structur and false for non-tensor one.
Implements concepts::QuadratureRule2d.
Definition at line 523 of file quadRule.hh.
◆ weights()
|
inlinevirtual |
Returns the i-th weight, belonging to (x_i,y_i) as nontensored.
Implements concepts::QuadratureRule2d.
Definition at line 503 of file quadRule.hh.
Member Data Documentation
◆ beta_
|
private |
Definition at line 552 of file quadRule.hh.
◆ intX_
|
protectedinherited |
Abscissas.
Definition at line 382 of file quadRule.hh.
◆ intY_
|
protectedinherited |
Definition at line 383 of file quadRule.hh.
◆ n_
|
private |
Definition at line 554 of file quadRule.hh.
◆ weights_
|
private |
Definition at line 550 of file quadRule.hh.
The documentation for this class was generated from the following file:
- integration/quadRule.hh