GemaCoreLib
The GeMA Core library
Loading...
Searching...
No Matches
gmTetIntegrationRule.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_TET_INT_RULE_H_
27#define _GEMA_TET_INT_RULE_H_
28
29#include "gmIntegrationRule.h"
31#include "gmBarIntegrationRule.h" // Needed by edge rules
32#include "gmTriIntegrationRule.h" // Needed by face rules
33
36
37//--------------------------------------------------------
38// Element rules
39//--------------------------------------------------------
40
41
44{
45public:
56
58 GmTetGaussIntegrationRule(GmIntegrationRuleType irType, int rule1, int rule2, int rule3)
60 {
61 assert(irType == GM_GAUSS_RULE_TYPE); Q_UNUSED(irType); Q_UNUSED(rule2); Q_UNUSED(rule3);
62 }
63};
64
67{
68public:
73 GmTetNewtonIntegrationRule(int rule, bool closed)
75 GM_TET_NIR_KEY, rule,
76 GmNewtonIntegrationTables::tetRuleTable(rule, closed),
77 GmNewtonIntegrationTables::tetRuleDegree(rule))
78 {
79 }
80
82 GmTetNewtonIntegrationRule(GmIntegrationRuleType irType, int rule1, int rule2, int rule3)
84 {
85 assert(irType == GM_CLOSED_NEWTON_RULE_TYPE || irType == GM_OPEN_NEWTON_RULE_TYPE); Q_UNUSED(rule2); Q_UNUSED(rule3);
86 }
87};
88
89//--------------------------------------------------------
90// Border rules
91//--------------------------------------------------------
92
93
96{
97public:
101
104 : GmTetGaussFaceIntegrationRule(type, rule1) { Q_UNUSED(faceType); Q_UNUSED(irType); Q_UNUSED(rule2); }
105};
106
119
120
121#endif
122
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 Tet element borders (edges)
Definition gmTetIntegrationRule.h:109
GmTetGaussEdgeIntegrationRule(GmCellType type, int rule)
Constructor.
Definition gmTetIntegrationRule.h:112
GmTetGaussEdgeIntegrationRule(GmCellType type, GmIntegrationRuleType irType, int rule)
Standard constructor to enable the class use with GmCellIntegrationRuleSet.
Definition gmTetIntegrationRule.h:116
Gauss integration rule for Tet element faces.
Definition gmTetIntegrationRule.h:96
GmTetGaussFaceIntegrationRule(GmCellType type, int rule)
Constructor.
Definition gmTetIntegrationRule.h:99
GmTetGaussFaceIntegrationRule(GmCellType type, GmCellFaceType faceType, GmIntegrationRuleType irType, int rule1, int rule2)
Standard constructor to enable the class use with GmCellIntegrationRuleSet.
Definition gmTetIntegrationRule.h:103
3D integration rules for Tet elements
Definition gmTetIntegrationRule.h:44
GmTetGaussIntegrationRule(GmIntegrationRuleType irType, int rule1, int rule2, int rule3)
Standard constructor to enable the class use with GmCellIntegrationRuleSet.
Definition gmTetIntegrationRule.h:58
GmTetGaussIntegrationRule(int rule)
Basic constructor for a Tetrahedron integration rule using Gauss rules. Rule should be 1 or 4....
Definition gmTetIntegrationRule.h:50
Newton Integration rule for tetrahedron elements. Accepts both open and closed rules.
Definition gmTetIntegrationRule.h:67
GmTetNewtonIntegrationRule(GmIntegrationRuleType irType, int rule1, int rule2, int rule3)
Standard constructor to enable the class use with GmCellIntegrationRuleSet.
Definition gmTetIntegrationRule.h:82
GmTetNewtonIntegrationRule(int rule, bool closed)
Basic constructor for a tetrahedron integration rule using Newton Cotes rules. Rule from 1 to 5....
Definition gmTetIntegrationRule.h:73
Gauss Integration rule for triangle elements. Base on Felippa, IFEM, section 24.2.
Definition gmTriIntegrationRule.h:43
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
GmCellFaceType
The type of a 3D element's face.
Definition gmCellType.h:136
#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_TET_NIR_KEY
Base cache key for 3D Newton cotes tetrahedron rules.
Definition gmIntegrationRule.h:55
@ GM_TET_GIR_KEY
Base cache key for 3D Gauss tetrahedron rules.
Definition gmIntegrationRule.h:46
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...
Declaration of the GmTriXxxxIntegrationRule family of classes, including border rules....