GemaCoreLib
The GeMA Core library
Classes | Typedefs | Enumerations
gmIntegrationRule.h File Reference

Declaration of the GmIntegrationRule class and its helper decendants. More...

#include "gmCoreConfig.h"
#include "gmVector.h"
#include "gmCellType.h"
#include <QString>
#include <QMutex>
#include <assert.h>
Include dependency graph for gmIntegrationRule.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  GmIntegrationRule
 Integration rule base classe. More...
 
class  GmLinearMultiTableIntegrationRule< N >
 A helper class used to combine 1, 2 or 3 single "line" integration rule tables into a multi-dimensional integration rule. The combined rule has the same number of natural coordinates as the number of supplied tables. Also, each rule parameter corresponds to a table and rule degree. More...
 
class  GmSingleTableIntegrationRule< N >
 A helper class used to implement rules based on a single table storing the full natural coordinate + its weight. It can be used, for example, to implement triangular, tetrahedron and pyramid integration rules. The N template parameter defines the number of natural coordinates returned by the rule. More...
 
class  GmReducedBarycentricSingleTableIntegrationRule< N >
 An especialization of the barycentric, single table, integration rule class to treat the case when the number of coordinates used by the integration rule is one less than the number of coordinates in the rule table. In that case, the FIRST barycentric coordinate from the table is IGNORED. That is used by some interface elements. More...
 

Typedefs

template<int N>
using GmBarycentricSingleTableIntegrationRule = GmSingleTableIntegrationRule< N >
 An alias for GmSingleTableIntegrationRule used for barycentric coordianate based classes.
 

Enumerations

enum  GmIntegrationRuleCacheKeyBase {
  GM_LINE_GIR_KEY = 10000000, GM_QUAD_GIR_KEY = 20000000, GM_TRI_GIR_KEY = 30000000, GM_HEX_GIR_KEY = 40000000,
  GM_TET_GIR_KEY = 50000000, GM_WEDGE_GIR_KEY = 60000000, GM_PYRA_GIR_KEY = 70000000, GM_INT_GIR_KEY = 80000000,
  GM_LINE_NIR_KEY = 90000000, GM_QUAD_NIR_KEY = 100000000, GM_TRI_NIR_KEY = 110000000, GM_HEX_NIR_KEY = 120000000,
  GM_TET_NIR_KEY = 130000000, GM_INT_NIR_KEY = 140000000, GM_LINE_LIR_KEY = 150000000, GM_QUAD_LIR_KEY = 160000000,
  GM_HEX_LIR_KEY = 170000000, GM_USER_IR_KEY = 180000000
}
 Enumeration used to define global cache keys for integration rules. These values are used by implementations of the abstract GmIntegrationRule::cacheKey() method. More...
 
enum  GmIntegrationRuleType {
  GM_GAUSS_RULE_TYPE, GM_LOBATTO_RULE_TYPE, GM_CLOSED_NEWTON_RULE_TYPE, GM_OPEN_NEWTON_RULE_TYPE,
  GM_NUM_RULE_TYPES, GM_AUTO_RULE_TYPE
}
 The type of desired integration rule (Gauss quadrature, Lobatto quadrature, etc) More...
 

Detailed Description

Declaration of the GmIntegrationRule class and its helper decendants.

Author
Carlos Augusto Teixeira Mendes
Date
may, 2015

Enumeration Type Documentation

◆ GmIntegrationRuleCacheKeyBase

Enumeration used to define global cache keys for integration rules. These values are used by implementations of the abstract GmIntegrationRule::cacheKey() method.

Enumerator
GM_LINE_GIR_KEY 

Base cache key for 1D Gauss line rules.

GM_QUAD_GIR_KEY 

Base cache key for 2D Gauss quad rules.

GM_TRI_GIR_KEY 

Base cache key for 2D Gauss triangle rules.

GM_HEX_GIR_KEY 

Base cache key for 3D Gauss hex rules.

GM_TET_GIR_KEY 

Base cache key for 3D Gauss tetrahedron rules.

GM_WEDGE_GIR_KEY 

Base cache key for 3D Gauss wedge rules.

GM_PYRA_GIR_KEY 

Base cache key for 3D Gauss pyramid rules.

GM_INT_GIR_KEY 

Base cache key for 3D Gauss triangle interface rules.

GM_LINE_NIR_KEY 

Base cache key for 1D Newton cotes line rules.

GM_QUAD_NIR_KEY 

Base cache key for 2D Newton cotes quad rules.

GM_TRI_NIR_KEY 

Base cache key for 2D Newton cotes triangle rules.

GM_HEX_NIR_KEY 

Base cache key for 3D Newton cotes hex rules.

GM_TET_NIR_KEY 

Base cache key for 3D Newton cotes tetrahedron rules.

GM_INT_NIR_KEY 

Base cache key for 3D Newton triangle interface rules.

GM_LINE_LIR_KEY 

Base cache key for 1D Lobatto line rules.

GM_QUAD_LIR_KEY 

Base cache key for 2D Lobatto quad rules.

GM_HEX_LIR_KEY 

Base cache key for 3D Lobatto hex rules.

GM_USER_IR_KEY 

Base cache key for user derived classes.

◆ GmIntegrationRuleType

The type of desired integration rule (Gauss quadrature, Lobatto quadrature, etc)

Enumerator
GM_GAUSS_RULE_TYPE 

Gauss rules.

GM_LOBATTO_RULE_TYPE 

Lobatto rules.

GM_CLOSED_NEWTON_RULE_TYPE 

Closed Newton-Cotes rules.

GM_OPEN_NEWTON_RULE_TYPE 

Open Newton-Cotes rules.

GM_NUM_RULE_TYPES 

Nota a rule, the number of rules above.

GM_AUTO_RULE_TYPE 

The type of rule should be choosed by the default for the target element type.