GemaCoreLib
The GeMA Core library
Loading...
Searching...
No Matches
gmTriIntegrationRule.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_TRI_INT_RULE_H_
27#define _GEMA_TRI_INT_RULE_H_
28
29#include "gmIntegrationRule.h"
31#include "gmBarIntegrationRule.h" // Needed by edge rules
32
35
36 //--------------------------------------------------------
37 // Element rules
38 //--------------------------------------------------------
39
40
43{
44public:
55
57 GmTriGaussIntegrationRule(GmIntegrationRuleType irType, int rule1, int rule2, int rule3)
59 {
60 assert(irType == GM_GAUSS_RULE_TYPE); Q_UNUSED(irType); Q_UNUSED(rule2); Q_UNUSED(rule3);
61 }
62};
63
66{
67public:
72 GmTriNewtonIntegrationRule(int rule, bool closed)
74 GM_TRI_NIR_KEY, rule,
75 GmNewtonIntegrationTables::triRuleTable(rule, closed),
76 GmNewtonIntegrationTables::triRuleDegree(rule))
77 {
78 }
79
81 GmTriNewtonIntegrationRule(GmIntegrationRuleType irType, int rule1, int rule2, int rule3)
83 {
84 assert(irType == GM_CLOSED_NEWTON_RULE_TYPE || irType == GM_OPEN_NEWTON_RULE_TYPE); Q_UNUSED(rule2); Q_UNUSED(rule3);
85 }
86};
87
88
89//--------------------------------------------------------
90// Border rules
91//--------------------------------------------------------
92
93
106
107
108#endif
109
A class storing tables with (position, weight) pairs for line, triangle and tetrahedron Gauss integra...
Definition gmGaussIntegrationTables.h:37
1D Gauss Integration rules (for bar elements)
Definition gmBarIntegrationRule.h:37
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
A helper class used to implement rules based on a single table storing the full natural coordinate + ...
Definition gmIntegrationRule.h:253
Gauss integration rule for Tri element borders.
Definition gmTriIntegrationRule.h:96
GmTriGaussEdgeIntegrationRule(GmCellType type, int rule)
Constructor.
Definition gmTriIntegrationRule.h:99
GmTriGaussEdgeIntegrationRule(GmCellType type, GmIntegrationRuleType irType, int rule)
Standard constructor to enable the class use with GmCellIntegrationRuleSet.
Definition gmTriIntegrationRule.h:103
Gauss Integration rule for triangle elements. Base on Felippa, IFEM, section 24.2.
Definition gmTriIntegrationRule.h:43
GmTriGaussIntegrationRule(GmIntegrationRuleType irType, int rule1, int rule2, int rule3)
Standard constructor to enable the class use with GmCellIntegrationRuleSet.
Definition gmTriIntegrationRule.h:57
GmTriGaussIntegrationRule(int rule)
Basic constructor for a Triangle integration rule using Gauss rules. Rule should be 1,...
Definition gmTriIntegrationRule.h:49
Newton Integration rule for triangle elements. Accepts both open and closed rules.
Definition gmTriIntegrationRule.h:66
GmTriNewtonIntegrationRule(int rule, bool closed)
Basic constructor for a Triangle integration rule using Newton Cotes rules. Rule from 1 to 5....
Definition gmTriIntegrationRule.h:72
GmTriNewtonIntegrationRule(GmIntegrationRuleType irType, int rule1, int rule2, int rule3)
Standard constructor to enable the class use with GmCellIntegrationRuleSet.
Definition gmTriIntegrationRule.h:81
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_TRI_GIR_KEY
Base cache key for 2D Gauss triangle rules.
Definition gmIntegrationRule.h:44
@ GM_TRI_NIR_KEY
Base cache key for 2D Newton cotes triangle rules.
Definition gmIntegrationRule.h:53
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_OPEN_NEWTON_RULE_TYPE
Open Newton-Cotes rules.
Definition gmIntegrationRule.h:78
Declaration of the set of tables defining Newton Cotes integration rule points and weights Content wa...