GemaCoreLib
The GeMA Core library
Loading...
Searching...
No Matches
gmQuadIntegrationRule.h
Go to the documentation of this file.
1/************************************************************************
2**
3** Copyright (C) 2014 by Carlos Augusto Teixera Mendes
4** All rights reserved.
5**
6** This file is part of the "GeMA" software. It's use should respect
7** the terms in the license agreement that can be found together
8** with this source code.
9** It is provided AS IS, with NO WARRANTY OF ANY KIND,
10** INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR
11** A PARTICULAR PURPOSE.
12**
13************************************************************************/
14
26#ifndef _GEMA_QUAD_INT_RULE_H_
27#define _GEMA_QUAD_INT_RULE_H_
28
29#include "gmIntegrationRule.h"
31#include "gmBarIntegrationRule.h" // Needed by edge rules
32
36
37//--------------------------------------------------------
38// Element rules
39//--------------------------------------------------------
40
43{
44public:
49 GmQuadGaussIntegrationRule(int xiRule, int etaRule)
51 xiRule, GmGaussIntegrationTables::lineRuleTable(xiRule), GmGaussIntegrationTables::lineRuleDegree(xiRule),
52 etaRule, GmGaussIntegrationTables::lineRuleTable(etaRule), GmGaussIntegrationTables::lineRuleDegree(etaRule))
53 {
54 }
55
57 GmQuadGaussIntegrationRule(GmIntegrationRuleType irType, int rule1, int rule2, int rule3)
58 : GmQuadGaussIntegrationRule(rule1, rule2)
59 {
60 assert(irType == GM_GAUSS_RULE_TYPE); Q_UNUSED(irType); Q_UNUSED(rule3);
61 }
62};
63
66{
67public:
72 GmQuadNewtonIntegrationRule(int xiRule, int etaRule, bool closed)
74 xiRule, GmNewtonIntegrationTables::lineRuleTable(xiRule, closed), GmNewtonIntegrationTables::lineRuleDegree(xiRule),
75 etaRule, GmNewtonIntegrationTables::lineRuleTable(etaRule, closed), GmNewtonIntegrationTables::lineRuleDegree(etaRule))
76 {
77 }
78
80 GmQuadNewtonIntegrationRule(GmIntegrationRuleType irType, int rule1, int rule2, int rule3)
82 {
83 assert(irType == GM_CLOSED_NEWTON_RULE_TYPE || irType == GM_OPEN_NEWTON_RULE_TYPE); Q_UNUSED(rule3);
84 }
85};
86
89{
90public:
95 GmQuadLobattoIntegrationRule(int xiRule, int etaRule)
97 xiRule, GmLobattoIntegrationTables::lineRuleTable(xiRule), GmLobattoIntegrationTables::lineRuleDegree(xiRule),
98 etaRule, GmLobattoIntegrationTables::lineRuleTable(etaRule), GmLobattoIntegrationTables::lineRuleDegree(etaRule))
99 {
100 }
101
103 GmQuadLobattoIntegrationRule(GmIntegrationRuleType irType, int rule1, int rule2, int rule3)
104 : GmQuadLobattoIntegrationRule(rule1, rule2)
105 {
106 assert(irType == GM_LOBATTO_RULE_TYPE); Q_UNUSED(irType); Q_UNUSED(rule3);
107 }
108};
109
110
111//--------------------------------------------------------
112// Border rules
113//--------------------------------------------------------
114
115
128
142
155
156#endif
157
A class storing tables with (position, weight) pairs for line, triangle and tetrahedron Gauss integra...
Definition gmGaussIntegrationTables.h:37
Integration rule base classe.
Definition gmIntegrationRule.h:89
1D Gauss Integration rules (for bar elements)
Definition gmBarIntegrationRule.h:37
1D Lobatto Integration rules (for bar elements)
Definition gmBarIntegrationRule.h:84
A helper class used to combine 1, 2 or 3 single "line" integration rule tables into a multi-dimension...
Definition gmIntegrationRule.h:192
A class storing tables with (position, weight) pairs for line Lobatto integration rules.
Definition gmLobattoIntegrationTables.h:36
A class storing tables with (position, weight) pairs for line, triangle and tetrahedron Open & closed...
Definition gmNewtonCotesIntegrationTables.h:37
Common code for border integration rules based on a given integration rule that is used to implement ...
Definition gmBorderIntegrationRule.h:75
Integration rule for Quad element borders.
Definition gmQuadIntegrationRule.h:122
GmQuadEdgeIntegrationRule(GmCellType type, GmIntegrationRule *ir)
Constructor. See comments about parameters in GmProxyBorderIntegrationRule.
Definition gmQuadIntegrationRule.h:125
Gauss integration rule for Quad element borders.
Definition gmQuadIntegrationRule.h:131
GmQuadGaussEdgeIntegrationRule(GmCellType type, int rule)
Constructor.
Definition gmQuadIntegrationRule.h:134
GmQuadGaussEdgeIntegrationRule(GmCellType type, GmIntegrationRuleType irType, int rule)
Standard constructor to enable the class use with GmCellIntegrationRuleSet.
Definition gmQuadIntegrationRule.h:138
2D Isotropic / anisotropic Gauss integration rules for Quad elements
Definition gmQuadIntegrationRule.h:43
GmQuadGaussIntegrationRule(int xiRule, int etaRule)
Basic constructor for a Quad integration rule using Gauss rules. Rule from 1 to 5....
Definition gmQuadIntegrationRule.h:49
GmQuadGaussIntegrationRule(GmIntegrationRuleType irType, int rule1, int rule2, int rule3)
Standard constructor to enable the class use with GmCellIntegrationRuleSet.
Definition gmQuadIntegrationRule.h:57
Lobatto integration rule for Quad element borders.
Definition gmQuadIntegrationRule.h:145
GmQuadLobattoEdgeIntegrationRule(GmCellType type, GmIntegrationRuleType irType, int rule)
Standard constructor to enable the class use with GmCellIntegrationRuleSet.
Definition gmQuadIntegrationRule.h:152
GmQuadLobattoEdgeIntegrationRule(GmCellType type, int rule)
Constructor.
Definition gmQuadIntegrationRule.h:148
2D Isotropic / anisotropic Lobatto integration rules for Quad elements
Definition gmQuadIntegrationRule.h:89
GmQuadLobattoIntegrationRule(int xiRule, int etaRule)
Basic constructor for a Quad integration rule using Lobatto rules. Rule from 1 to 11....
Definition gmQuadIntegrationRule.h:95
GmQuadLobattoIntegrationRule(GmIntegrationRuleType irType, int rule1, int rule2, int rule3)
Standard constructor to enable the class use with GmCellIntegrationRuleSet.
Definition gmQuadIntegrationRule.h:103
2D Isotropic / anisotropic Newton cotes integration rules for Quad elements
Definition gmQuadIntegrationRule.h:66
GmQuadNewtonIntegrationRule(GmIntegrationRuleType irType, int rule1, int rule2, int rule3)
Standard constructor to enable the class use with GmCellIntegrationRuleSet.
Definition gmQuadIntegrationRule.h:80
GmQuadNewtonIntegrationRule(int xiRule, int etaRule, bool closed)
Basic constructor for a Quad integration rule using Newton Cotes rules. Rule from 1 to 5....
Definition gmQuadIntegrationRule.h:72
Declaration of the GmLineXxxxIntegrationRule family of classes Content previously in gmIntegrationRul...
Declaration of the GmBorderIntegrationRule and GmProxyBorderIntegrationRule classes.
GmCellType
Mesh Cell types. Don't change type orders or add types without reading comments below.
Definition gmCellType.h:31
#define GMC_API_EXPORT
Macro for controlling if the class is being exported (GEMA_CORE_LIB defined) or imported (GEMA_CORE_L...
Definition gmCoreConfig.h:35
Declaration of the set of tables defining Gauss integration rule points and weights Content was previ...
Declaration of the GmIntegrationRule class and its helper decendants.
@ GM_QUAD_NIR_KEY
Base cache key for 2D Newton cotes quad rules.
Definition gmIntegrationRule.h:52
@ GM_QUAD_GIR_KEY
Base cache key for 2D Gauss quad rules.
Definition gmIntegrationRule.h:43
@ GM_QUAD_LIR_KEY
Base cache key for 2D Lobatto quad rules.
Definition gmIntegrationRule.h:59
GmIntegrationRuleType
The type of desired integration rule (Gauss quadrature, Lobatto quadrature, etc)
Definition gmIntegrationRule.h:68
@ GM_CLOSED_NEWTON_RULE_TYPE
Closed Newton-Cotes rules.
Definition gmIntegrationRule.h:77
@ GM_GAUSS_RULE_TYPE
Gauss rules.
Definition gmIntegrationRule.h:75
@ GM_LOBATTO_RULE_TYPE
Lobatto rules.
Definition gmIntegrationRule.h:76
@ GM_OPEN_NEWTON_RULE_TYPE
Open Newton-Cotes rules.
Definition gmIntegrationRule.h:78
Declaration of the set of tables defining Lobatto integration rule points and weights Content was pre...
Declaration of the set of tables defining Newton Cotes integration rule points and weights Content wa...