GemaCoreLib
The GeMA Core library
Loading...
Searching...
No Matches
gmPyraIntegrationRule.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_PYRA_INT_RULE_H_
27#define _GEMA_PYRA_INT_RULE_H_
28
29#include "gmIntegrationRule.h"
31#include "gmBarIntegrationRule.h" // Needed by edge rules
32#include "gmQuadIntegrationRule.h" // Needed by face rules
33#include "gmTriIntegrationRule.h" // Needed by face rules
34
35//--------------------------------------------------------
36// Element rules
37//--------------------------------------------------------
38
41{
42public:
49 GmGaussIntegrationTables::pyraRuleTable(rule),
50 GmGaussIntegrationTables::pyraRuleDegree(rule))
51 {
52 }
53
55 GmPyraGaussIntegrationRule(GmIntegrationRuleType irType, int rule1, int rule2, int rule3)
57 {
58 assert(irType == GM_GAUSS_RULE_TYPE); Q_UNUSED(irType); Q_UNUSED(rule2); Q_UNUSED(rule3);
59 }
60};
61
63
64
65//--------------------------------------------------------
66// Border rules
67//--------------------------------------------------------
68
71{
72public:
74 GmPyraGaussFaceIntegrationRule(GmCellType type, GmCellFaceType faceType, int rule1, int rule2)
75 : GmProxyBorderIntegrationRule(type, 3, faceType == GM_QUAD_FACE ?
77 (GmIntegrationRule*) new GmTriGaussIntegrationRule(rule1), true) {}
78
81 : GmPyraGaussFaceIntegrationRule(type, faceType, rule1, rule2) { Q_UNUSED(irType); }
82};
83
96
97
98#endif
99
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
Common code for border integration rules based on a given integration rule that is used to implement ...
Definition gmBorderIntegrationRule.h:75
Gauss integration rule for Tet element borders (edges)
Definition gmPyraIntegrationRule.h:86
GmPyraGaussEdgeIntegrationRule(GmCellType type, int rule)
Constructor.
Definition gmPyraIntegrationRule.h:89
GmPyraGaussEdgeIntegrationRule(GmCellType type, GmIntegrationRuleType irType, int rule)
Standard constructor to enable the class use with GmCellIntegrationRuleSet.
Definition gmPyraIntegrationRule.h:93
Newton Integration rule for pyramid elements. Should be included.
Definition gmPyraIntegrationRule.h:71
GmPyraGaussFaceIntegrationRule(GmCellType type, GmCellFaceType faceType, int rule1, int rule2)
Constructor.
Definition gmPyraIntegrationRule.h:74
GmPyraGaussFaceIntegrationRule(GmCellType type, GmCellFaceType faceType, GmIntegrationRuleType irType, int rule1, int rule2)
Standard constructor to enable the class use with GmCellIntegrationRuleSet.
Definition gmPyraIntegrationRule.h:80
3D integration rules for Pyramid elements
Definition gmPyraIntegrationRule.h:41
GmPyraGaussIntegrationRule(GmIntegrationRuleType irType, int rule1, int rule2, int rule3)
Standard constructor to enable the class use with GmCellIntegrationRuleSet.
Definition gmPyraIntegrationRule.h:55
GmPyraGaussIntegrationRule(int rule)
Basic constructor for a pyramid integration rule using Gauss rules. Rule should be 1 ,...
Definition gmPyraIntegrationRule.h:47
2D Isotropic / anisotropic Gauss integration rules for Quad elements
Definition gmQuadIntegrationRule.h:43
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 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
@ GM_QUAD_FACE
The element face is a quadrilateral.
Definition gmCellType.h:137
#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 GmIntegrationRule class and its helper decendants.
@ GM_PYRA_GIR_KEY
Base cache key for 3D Gauss pyramid rules.
Definition gmIntegrationRule.h:48
GmIntegrationRuleType
The type of desired integration rule (Gauss quadrature, Lobatto quadrature, etc)
Definition gmIntegrationRule.h:68
@ GM_GAUSS_RULE_TYPE
Gauss rules.
Definition gmIntegrationRule.h:75
Declaration of the GmQuadXxxxIntegrationRule family of classes, including border rules....
Declaration of the GmTriXxxxIntegrationRule family of classes, including border rules....