24 #ifndef _GEMA_BORDER_INT_RULE_H_ 25 #define _GEMA_BORDER_INT_RULE_H_ 61 virtual bool translatePoint(
int border,
const GmVector& borderCoord,
GmVector& elementCoord)
const = 0;
64 virtual int numBorderCoord()
const = 0;
80 bool isValid()
const {
return _rule->isValid(); }
83 virtual int numPoints()
const {
return _rule->numPoints(); }
88 _rule->integrationPoint(index, naturalCoord, weight);
92 virtual int numNaturalCoord()
const { assert(_rule->isValid());
return _nnatural; }
95 virtual int degree()
const {
return _rule->degree(); }
104 virtual int rulePar(
int num)
const {
return _rule->rulePar(num); }
110 virtual int cacheKey()
const {
return _rule->cacheKey(); }
GmIntegrationRuleType
The type of desired integration rule (Gauss quadrature, Lobatto quadrature, etc)
Definition: gmIntegrationRule.h:67
bool isValid() const
Returns true if this is a valid integration rule object, false if not.
Definition: gmBorderIntegrationRule.h:80
int _nnatural
The number of natural coordinates for the rule. Might be different from _shape->numNaturalCoord() for...
Definition: gmBorderIntegrationRule.h:122
GmIntegrationRule * _rule
The basic wrapped integration rule.
Definition: gmBorderIntegrationRule.h:120
virtual bool translatePoint(int border, const GmVector &borderCoord, GmVector &elementCoord) const =0
Given an integration point calculated with the border rule, by a call to integrationPoint(),...
virtual int rulePar(int num) const
Returns the value of the numbered rule parameter received in the rule constructor (-1 if unused)....
Definition: gmBorderIntegrationRule.h:104
virtual int numNaturalCoord() const
Returns the number of natural coordinates used by this integration rule.
Definition: gmBorderIntegrationRule.h:92
Declaration of the GmIntegrationRule class and its helper decendants.
Integration rule base classe.
Definition: gmIntegrationRule.h:88
Shape function handling base classe.
Definition: gmShape.h:37
virtual int numPoints() const
Returns the number of integration points returned by this rule.
Definition: gmBorderIntegrationRule.h:83
virtual int cacheKey() const
Returns an unique integer that can be used to uniquelly represent this kind of integration rule (i....
Definition: gmBorderIntegrationRule.h:110
virtual GmIntegrationRuleType ruleType() const
Returns the type of the integration rule.
Definition: gmBorderIntegrationRule.h:98
Border integration rule base classe.
Definition: gmBorderIntegrationRule.h:37
Common code for border integration rules based on a given integration rule that is used to implement ...
Definition: gmBorderIntegrationRule.h:74
virtual void integrationPoint(int index, GmVector &naturalCoord, double *weight) const
Given an index from 0 to numPoints() - 1, fills naturalCoord and weight with the position and weigth ...
Definition: gmBorderIntegrationRule.h:86
bool _face
Is this a face or an edge border integration rule?
Definition: gmBorderIntegrationRule.h:123
const GmShape * _shape
The shape function of the element type associated with this rule.
Definition: gmBorderIntegrationRule.h:121
#define GMC_API_EXPORT
Macro for controling if the class is being exported (GEMA_CORE_LIB defined) or imported (GEMA_CORE_LI...
Definition: gmCoreConfig.h:35
GmCellType
Mesh Cell types. Don't change type orders or add types without reading comments below.
Definition: gmCellType.h:30
virtual int numBorderCoord() const
Returns the number of expected coordinates in a border coordinate.
Definition: gmBorderIntegrationRule.h:113
virtual int ruleParNumPoints(int num) const
Definition: gmBorderIntegrationRule.h:107
virtual int degree() const
Returns the integration degree for this rule (The polynomial degree for which this rule is exact)
Definition: gmBorderIntegrationRule.h:95
virtual QString ruleName() const
Returns the current ruleName adopted by this integration rule.
Definition: gmBorderIntegrationRule.h:101
arma::vec GmVector
The basic type for a GeMA vector object. Currently based on an Armadillo vector.
Definition: gmVector.h:34