GemaCoreLib
The GeMA Core library
Static Public Member Functions | Static Private Member Functions | Static Private Attributes | List of all members
GmGaussIntegrationTables Class Reference

A class storing tables with (position, weight) pairs for line, triangle and tetrahedron Gauss integration rules. More...

#include <gmGaussIntegrationTables.h>

Collaboration diagram for GmGaussIntegrationTables:
Collaboration graph
[legend]

Static Public Member Functions

static const QVector< QPair< double, double > > * lineRuleTable (int rule)
 Returns the table storing (position, weight) pairs for the given line Gauss rule. Rule SHOULD be in the interval 1 to 5. Returns NULL for any unknown rule.
 
static int lineRuleDegree (int rule)
 Returns the integration degree for the given line Gauss rule (The polynomial degree. More...
 
static const QVector< QPair< GmVector, double > > * triRuleTable (int rule)
 Returns the table storing (position, weight) pairs for the given triangle Gauss rule. Rule SHOULD be equal to 1, 3, or 6. Returns NULL for any unknown rule.
 
static int triRuleDegree (int rule)
 Returns the integration degree for the given triangle Gauss rule (The polynomial degree for which this rule is exact). Returns an undefined value for invalid rules Rule 1 -> Degree 1, Rule 3 -> Degree 2, Rule 6 -> Degree 4.
 
static const QVector< QPair< GmVector, double > > * tetRuleTable (int rule)
 Returns the table storing (position, weight) pairs for the given tetrahedron Gauss rule. Rule SHOULD be equal to 1 or 4. Returns NULL for any unknown rule.
 
static int tetRuleDegree (int rule)
 Returns the integration degree for the given tetrahedron Gauss rule (The polynomial degree for which this rule is exact). Returns an undefined value for invalid rules Rule 1 -> Degree 1, Rule 4 -> Degree 2.
 
static const QVector< QPair< GmVector, double > > * pyraRuleTable (int rule)
 Returns the table storing (position, weight) pairs for the given pyramid Gauss rule. Rule SHOULD be equal to 1, 5 or 13. Returns NULL for any unknown rule.
 
static int pyraRuleDegree (int rule)
 Returns the integration degree for the given pyramid Gauss rule (The polynomial degree for which this rule is exact). Returns an undefined value for invalid rules Rule 1 -> Degree 1, Rule 5 -> Degree 2, and Rule 13 -> Degree 2.
 
static bool initTables ()
 Initialization function for the set of integration rule tables. Must be called once.
 

Static Private Member Functions

static void initLineTable ()
 Initializes tables needed to compute line Gauss quadrature rules. More...
 
static void initTriTable ()
 Initializes _triTable with position and weigths for 2D Gauss integration rules over a triangle with natural coordinates zeta1, zeta2 and zeta3. More...
 
static void initTetTable ()
 Initializes _tetTable with position and weigths for 3D Gauss integration rules over a tetrahedron with natural coordinates zeta1, zeta2, zeta3 and zeta4. More...
 
static void initPyraTable ()
 Initializes _pyraTable with position and weigths for 3D Gauss integration rules over a pyramid with natural coordinates xi, eta, zeta. More...
 

Static Private Attributes

static QVector< QPair< double, double > > _lineTable [5]
 The static table storing (position, weight) pairs for the first 5 line Gauss rules.
 
static QVector< QPair< GmVector, double > > _triTable [6]
 The static table storing (position, weight) pairs for the triangle Gauss rules. More...
 
static QVector< QPair< GmVector, double > > _tetTable [4]
 The static table storing (position, weight) pairs for the tetrahedron Gauss rules with 1, and 4 points. Entries for the remaining indices are empty. Position vectors store natural coordinates with 4 components.
 
static QVector< QPair< GmVector, double > > _pyraTable [13]
 The static table storing (position, weight) pairs for the pyramid Gauss rules with 1, 5, and 13 points. Entries for the remaining indices are empty. Position vectors store natural coordinates with 3 components.
 

Detailed Description

A class storing tables with (position, weight) pairs for line, triangle and tetrahedron Gauss integration rules.

Member Function Documentation

◆ initLineTable()

void GmGaussIntegrationTables::initLineTable ( )
staticprivate

Initializes tables needed to compute line Gauss quadrature rules.

This function initializes _lineTable with weight and coordinate constants for each of the first five rules used for 1D, 2D and 3D quadrature rules.

See Felippa, chapter 17, table 17.1 (page 17-7) or the wikipedia for the magic numbers.

Only the first five rules are currently implemented.

◆ initPyraTable()

void GmGaussIntegrationTables::initPyraTable ( )
staticprivate

Initializes _pyraTable with position and weigths for 3D Gauss integration rules over a pyramid with natural coordinates xi, eta, zeta.

Implements rules with 1, 5, and 13 points. Other rule slots are left empty on _pyraTable. See Felippa, AFEM section 19.7

◆ initTetTable()

void GmGaussIntegrationTables::initTetTable ( )
staticprivate

Initializes _tetTable with position and weigths for 3D Gauss integration rules over a tetrahedron with natural coordinates zeta1, zeta2, zeta3 and zeta4.

Implements rules with 1, and 4 points. Other rule slots are left empty on _tetTable. See Felippa, AFEM section 10.7

◆ initTriTable()

void GmGaussIntegrationTables::initTriTable ( )
staticprivate

Initializes _triTable with position and weigths for 2D Gauss integration rules over a triangle with natural coordinates zeta1, zeta2 and zeta3.

Implements rules with 1, 3 and 6 points. Other rule slots are left empty on _triTable. See Felippa, IFEM section 24.2.

◆ lineRuleDegree()

static int GmGaussIntegrationTables::lineRuleDegree ( int  rule)
inlinestatic

Returns the integration degree for the given line Gauss rule (The polynomial degree.

for which this rule is exact). Returns an undefined value for invalid rules

Member Data Documentation

◆ _triTable

QVector< QPair< GmVector, double > > GmGaussIntegrationTables::_triTable
staticprivate

The static table storing (position, weight) pairs for the triangle Gauss rules.

with 1, 3 and 6 points. Entries for the remaining indices are empty. Position vectors store natural coordinates with 3 components.


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