#include <quadRule.hh>
Public Member Functions | |
QuadratureRule2dQuadDuffy (Real beta, uint nx, uint ny, uint noVtx=0) | |
virtual const Real * | weights (uint i=0) const |
const uint | n (uint i=0) const |
virtual bool | quadratureData (const uint i, Real3d &q, Real &w) const |
virtual const bool | domain () const |
virtual const bool | tensor () const |
void | printData () const |
virtual const Real * | abscissas (uint i) const |
Protected Member Functions | |
virtual std::ostream & | info (std::ostream &os) const |
Returns information in an output stream. | |
Protected Attributes | |
const Real * | intX_ |
Abscissas. | |
const Real * | intY_ |
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.
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.
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 |
Returns the quadrature abcissas in the i-th direction.
i | i = 0 : x-direction, i = 1 : y-direction |
Implements concepts::QuadratureRule.
Definition at line 360 of file quadRule.hh.
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.
|
protectedvirtual |
Returns information in an output stream.
Reimplemented from concepts::OutputOperator.
Returns the number of quadrature points.
Implements concepts::QuadratureRule2d.
Definition at line 511 of file quadRule.hh.
|
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.
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.
Returns the i-th weight, belonging to (x_i,y_i) as nontensored.
Implements concepts::QuadratureRule2d.
Definition at line 503 of file quadRule.hh.
|
protectedinherited |
Abscissas.
Definition at line 382 of file quadRule.hh.
|
protectedinherited |
Definition at line 383 of file quadRule.hh.