KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
tetrahedron_gauss_legendre_integration_points.h
Go to the documentation of this file.
1 // | / |
2 // ' / __| _` | __| _ \ __|
3 // . \ | ( | | ( |\__ `
4 // _|\_\_| \__,_|\__|\___/ ____/
5 // Multi-Physics
6 //
7 // License: BSD License
8 // Kratos default license: kratos/license.txt
9 //
10 // Main authors: Josep Maria Carbonell
11 //
12 //
13 
14 
15 #if !defined(KRATOS_TETRAHEDRON_GAUSS_LEGENDRE_INTEGRATION_POINTS_H_INCLUDED )
16 #define KRATOS_TETRAHEDRON_GAUSS_LEGENDRE_INTEGRATION_POINTS_H_INCLUDED
17 
18 
19 // System includes
20 
21 // External includes
22 
23 // Project includes
24 #include "integration/quadrature.h"
25 
26 
27 namespace Kratos
28 {
29 
31 {
32 public:
34  typedef std::size_t SizeType;
35 
36  static const unsigned int Dimension = 3;
37 
39 
40  typedef std::array<IntegrationPointType, 1> IntegrationPointsArrayType;
41 
43 
45  {
46  return 1;
47  }
48 
50  {
51  static const IntegrationPointsArrayType s_integration_points{{
52  IntegrationPointType( 0.25,0.25,0.25 , 1.00 / 6.00 )
53  }};
54  return s_integration_points;
55  }
56 
57  std::string Info() const
58  {
59  std::stringstream buffer;
60  buffer << "Tetrahedron Gauss-Legendre quadrature 1 ";
61  return buffer.str();
62  }
63 
64 
65 }; // Class TetrahedronGaussLegendreIntegrationPoints1
66 
68 {
69 public:
71  typedef std::size_t SizeType;
72 
73  static const unsigned int Dimension = 3;
74 
76 
77  typedef std::array<IntegrationPointType, 4> IntegrationPointsArrayType;
78 
80 
82  {
83  return 4;
84  }
85 
87  {
88  static const IntegrationPointsArrayType s_integration_points{{
89  IntegrationPointType( 0.58541020,0.13819660,0.13819660 , 1.00 / 24.00 ),
90  IntegrationPointType( 0.13819660,0.58541020,0.13819660 , 1.00 / 24.00 ),
91  IntegrationPointType( 0.13819660,0.13819660,0.58541020 , 1.00 / 24.00 ),
92  IntegrationPointType( 0.13819660,0.13819660,0.13819660 , 1.00 / 24.00 )
93  }};
94  return s_integration_points;
95  }
96 
97  std::string Info() const
98  {
99  std::stringstream buffer;
100  buffer << "Tetrahedron Gauss-Legendre quadrature 2 ";
101  return buffer.str();
102  }
103 
104 
105 }; // Class TetrahedronGaussLegendreIntegrationPoints2
106 
108 {
109 public:
111  typedef std::size_t SizeType;
112 
113  static const unsigned int Dimension = 3;
114 
116 
117  typedef std::array<IntegrationPointType, 8> IntegrationPointsArrayType;
118 
120 
122  {
123  return 8;
124  }
125 
127  {
128  static const IntegrationPointsArrayType s_integration_points{{
129  IntegrationPointType( 0.015835909865720057993,0.32805469671142664734,0.32805469671142664734 , 0.02308799441864369039 ),
130  IntegrationPointType( 0.32805469671142664734,0.015835909865720057993,0.32805469671142664734 , 0.02308799441864369039 ),
131  IntegrationPointType( 0.32805469671142664734,0.32805469671142664734,0.015835909865720057993 , 0.02308799441864369039 ),
132  IntegrationPointType( 0.32805469671142664734,0.32805469671142664734,0.32805469671142664734 , 0.02308799441864369039 ),
133  IntegrationPointType( 0.67914317820120795168,0.10695227393293068277,0.10695227393293068277 , 0.01857867224802297628 ),
134  IntegrationPointType( 0.10695227393293068277,0.67914317820120795168,0.10695227393293068277 , 0.01857867224802297628 ),
135  IntegrationPointType( 0.10695227393293068277,0.10695227393293068277,0.67914317820120795168 , 0.01857867224802297628 ),
136  IntegrationPointType( 0.10695227393293068277,0.10695227393293068277,0.10695227393293068277 , 0.01857867224802297628 )
137  }};
138  return s_integration_points;
139  }
140 
141  std::string Info() const
142  {
143  std::stringstream buffer;
144  buffer << "Tetrahedron Gauss-Legendre quadrature 3 ";
145  return buffer.str();
146  }
147 
148 
149 }; // Class TetrahedronGaussLegendreIntegrationPoints3
150 
152 {
153 public:
155  typedef std::size_t SizeType;
156 
157  static const unsigned int Dimension = 3;
158 
160 
161  typedef std::array<IntegrationPointType, 14> IntegrationPointsArrayType;
162 
164 
166  {
167  return 14;
168  }
169 
171  {
172  static const IntegrationPointsArrayType s_integration_points{{
173  IntegrationPointType( 0.72179424906732632079,0.092735250310891226402,0.092735250310891226402 , 0.01224884051939365826 ),
174  IntegrationPointType( 0.092735250310891226402,0.72179424906732632079,0.092735250310891226402 , 0.01224884051939365826 ),
175  IntegrationPointType( 0.092735250310891226402,0.092735250310891226402,0.72179424906732632079 , 0.01224884051939365826 ),
176  IntegrationPointType( 0.092735250310891226402,0.092735250310891226402,0.092735250310891226402 , 0.01224884051939365826 ),
177  IntegrationPointType( 0.067342242210098170608,0.31088591926330060980,0.31088591926330060980 , 0.01878132095300264180 ),
178  IntegrationPointType( 0.31088591926330060980,0.067342242210098170608,0.31088591926330060980 , 0.01878132095300264180 ),
179  IntegrationPointType( 0.31088591926330060980,0.31088591926330060980,0.067342242210098170608 , 0.01878132095300264180 ),
180  IntegrationPointType( 0.31088591926330060980,0.31088591926330060980,0.31088591926330060980 , 0.01878132095300264180 ),
181  IntegrationPointType( 0.045503704125649649492,0.045503704125649649492,0.45449629587435035051 , 0.007091003462846911073 ),
182  IntegrationPointType( 0.045503704125649649492,0.45449629587435035051,0.045503704125649649492 , 0.007091003462846911073 ),
183  IntegrationPointType( 0.045503704125649649492,0.45449629587435035051,0.45449629587435035051 , 0.007091003462846911073 ),
184  IntegrationPointType( 0.45449629587435035051,0.045503704125649649492,0.045503704125649649492 , 0.007091003462846911073 ),
185  IntegrationPointType( 0.45449629587435035051,0.045503704125649649492,0.45449629587435035051 , 0.007091003462846911073 ),
186  IntegrationPointType( 0.45449629587435035051,0.45449629587435035051,0.045503704125649649492 , 0.007091003462846911073 )
187  }};
188  return s_integration_points;
189  }
190 
191  std::string Info() const
192  {
193  std::stringstream buffer;
194  buffer << "Tetrahedron Gauss-Legendre quadrature 4 ";
195  return buffer.str();
196  }
197 
198 
199 
200 }; // Class TetrahedronGaussLegendreIntegrationPoints4
201 
203 {
204 public:
206  typedef std::size_t SizeType;
207 
208  static const unsigned int Dimension = 3;
209 
211 
212  typedef std::array<IntegrationPointType, 24> IntegrationPointsArrayType;
213 
215 
217  {
218  return 24;
219  }
220 
222  {
223  static const IntegrationPointsArrayType s_integration_points{{
224  IntegrationPointType( 0.35619138622025439121,0.21460287125991520293,0.21460287125991520293 , 0.006653791709644939366 ),
225  IntegrationPointType( 0.21460287125991520293,0.35619138622025439121,0.21460287125991520293 , 0.006653791709644939366 ),
226  IntegrationPointType( 0.21460287125991520293,0.21460287125991520293,0.35619138622025439121 , 0.006653791709644939366),
227  IntegrationPointType( 0.21460287125991520293,0.21460287125991520293,0.21460287125991520293 , 0.006653791709644939366 ),
228  IntegrationPointType( 0.87797812439616594065,0.040673958534611353116,0.040673958534611353116 , 0.001679535175890970435 ),
229  IntegrationPointType( 0.040673958534611353116,0.87797812439616594065,0.040673958534611353116 , 0.001679535175890970435 ),
230  IntegrationPointType( 0.040673958534611353116,0.040673958534611353116,0.87797812439616594065 , 0.001679535175890970435 ),
231  IntegrationPointType( 0.040673958534611353116,0.040673958534611353116,0.040673958534611353116 , 0.001679535175890970435 ),
232  IntegrationPointType( 0.032986329573173468968,0.32233789014227551034,0.32233789014227551034 , 0.009226196923987899723 ),
233  IntegrationPointType( 0.32233789014227551034,0.032986329573173468968,0.32233789014227551034 , 0.009226196923987899723 ),
234  IntegrationPointType( 0.32233789014227551034,0.32233789014227551034,0.032986329573173468968 , 0.009226196923987899723 ),
235  IntegrationPointType( 0.32233789014227551034,0.32233789014227551034,0.32233789014227551034 , 0.009226196923987899723 ),
236  IntegrationPointType( 0.60300566479164914137,0.26967233145831580803,0.063661001875017525299 , 0.008035714285714285714 ),
237  IntegrationPointType( 0.60300566479164914137,0.063661001875017525299,0.26967233145831580803 , 0.008035714285714285714 ),
238  IntegrationPointType( 0.60300566479164914137,0.063661001875017525299,0.063661001875017525299 , 0.008035714285714285714 ),
239  IntegrationPointType( 0.063661001875017525299,0.60300566479164914137,0.26967233145831580803 , 0.008035714285714285714 ),
240  IntegrationPointType( 0.063661001875017525299,0.60300566479164914137,0.063661001875017525299 , 0.008035714285714285714 ),
241  IntegrationPointType( 0.063661001875017525299,0.063661001875017525299,0.60300566479164914137 ,0.008035714285714285714 ),
242  IntegrationPointType( 0.26967233145831580803,0.60300566479164914137,0.063661001875017525299 , 0.008035714285714285714 ),
243  IntegrationPointType( 0.26967233145831580803,0.063661001875017525299,0.60300566479164914137 , 0.008035714285714285714 ),
244  IntegrationPointType( 0.26967233145831580803,0.063661001875017525299,0.063661001875017525299 , 0.008035714285714285714 ),
245  IntegrationPointType( 0.063661001875017525299,0.26967233145831580803,0.60300566479164914137 , 0.008035714285714285714 ),
246  IntegrationPointType( 0.063661001875017525299,0.26967233145831580803,0.063661001875017525299 , 0.008035714285714285714 ),
247  IntegrationPointType( 0.063661001875017525299,0.063661001875017525299,0.26967233145831580803 , 0.008035714285714285714 )
248  }};
249  return s_integration_points;
250  }
251 
252  std::string Info() const
253  {
254  std::stringstream buffer;
255  buffer << "Tetrahedron Gauss-Legendre quadrature 5 ";
256  return buffer.str();
257  }
258 
259 
260 
261 }; // Class TetrahedronGaussLegendreIntegrationPoints5
262 
263 
266 
267 
271 
272 
274 
275 
276 } // namespace Kratos.
277 
278 #endif // KRATOS_TETRAHEDRON_GAUSS_LEGENDRE_INTEGRATION_POINTS_H_INCLUDED defined
279 
280 
Short class definition.
Definition: integration_point.h:52
Point class.
Definition: point.h:59
Definition: tetrahedron_gauss_legendre_integration_points.h:31
std::string Info() const
Definition: tetrahedron_gauss_legendre_integration_points.h:57
static const unsigned int Dimension
Definition: tetrahedron_gauss_legendre_integration_points.h:36
IntegrationPointType::PointType PointType
Definition: tetrahedron_gauss_legendre_integration_points.h:42
std::size_t SizeType
Definition: tetrahedron_gauss_legendre_integration_points.h:34
std::array< IntegrationPointType, 1 > IntegrationPointsArrayType
Definition: tetrahedron_gauss_legendre_integration_points.h:40
static SizeType IntegrationPointsNumber()
Definition: tetrahedron_gauss_legendre_integration_points.h:44
KRATOS_CLASS_POINTER_DEFINITION(TetrahedronGaussLegendreIntegrationPoints1)
static const IntegrationPointsArrayType & IntegrationPoints()
Definition: tetrahedron_gauss_legendre_integration_points.h:49
IntegrationPoint< 3 > IntegrationPointType
Definition: tetrahedron_gauss_legendre_integration_points.h:38
Definition: tetrahedron_gauss_legendre_integration_points.h:68
static const IntegrationPointsArrayType & IntegrationPoints()
Definition: tetrahedron_gauss_legendre_integration_points.h:86
std::array< IntegrationPointType, 4 > IntegrationPointsArrayType
Definition: tetrahedron_gauss_legendre_integration_points.h:77
IntegrationPoint< 3 > IntegrationPointType
Definition: tetrahedron_gauss_legendre_integration_points.h:75
static SizeType IntegrationPointsNumber()
Definition: tetrahedron_gauss_legendre_integration_points.h:81
IntegrationPointType::PointType PointType
Definition: tetrahedron_gauss_legendre_integration_points.h:79
std::string Info() const
Definition: tetrahedron_gauss_legendre_integration_points.h:97
static const unsigned int Dimension
Definition: tetrahedron_gauss_legendre_integration_points.h:73
std::size_t SizeType
Definition: tetrahedron_gauss_legendre_integration_points.h:71
KRATOS_CLASS_POINTER_DEFINITION(TetrahedronGaussLegendreIntegrationPoints2)
Definition: tetrahedron_gauss_legendre_integration_points.h:108
IntegrationPoint< 3 > IntegrationPointType
Definition: tetrahedron_gauss_legendre_integration_points.h:115
KRATOS_CLASS_POINTER_DEFINITION(TetrahedronGaussLegendreIntegrationPoints3)
IntegrationPointType::PointType PointType
Definition: tetrahedron_gauss_legendre_integration_points.h:119
static SizeType IntegrationPointsNumber()
Definition: tetrahedron_gauss_legendre_integration_points.h:121
std::array< IntegrationPointType, 8 > IntegrationPointsArrayType
Definition: tetrahedron_gauss_legendre_integration_points.h:117
std::string Info() const
Definition: tetrahedron_gauss_legendre_integration_points.h:141
static const unsigned int Dimension
Definition: tetrahedron_gauss_legendre_integration_points.h:113
std::size_t SizeType
Definition: tetrahedron_gauss_legendre_integration_points.h:111
static const IntegrationPointsArrayType & IntegrationPoints()
Definition: tetrahedron_gauss_legendre_integration_points.h:126
Definition: tetrahedron_gauss_legendre_integration_points.h:152
std::string Info() const
Definition: tetrahedron_gauss_legendre_integration_points.h:191
IntegrationPoint< 3 > IntegrationPointType
Definition: tetrahedron_gauss_legendre_integration_points.h:159
KRATOS_CLASS_POINTER_DEFINITION(TetrahedronGaussLegendreIntegrationPoints4)
std::size_t SizeType
Definition: tetrahedron_gauss_legendre_integration_points.h:155
static SizeType IntegrationPointsNumber()
Definition: tetrahedron_gauss_legendre_integration_points.h:165
std::array< IntegrationPointType, 14 > IntegrationPointsArrayType
Definition: tetrahedron_gauss_legendre_integration_points.h:161
static const unsigned int Dimension
Definition: tetrahedron_gauss_legendre_integration_points.h:157
static const IntegrationPointsArrayType & IntegrationPoints()
Definition: tetrahedron_gauss_legendre_integration_points.h:170
IntegrationPointType::PointType PointType
Definition: tetrahedron_gauss_legendre_integration_points.h:163
Definition: tetrahedron_gauss_legendre_integration_points.h:203
KRATOS_CLASS_POINTER_DEFINITION(TetrahedronGaussLegendreIntegrationPoints5)
static const unsigned int Dimension
Definition: tetrahedron_gauss_legendre_integration_points.h:208
std::string Info() const
Definition: tetrahedron_gauss_legendre_integration_points.h:252
std::size_t SizeType
Definition: tetrahedron_gauss_legendre_integration_points.h:206
IntegrationPointType::PointType PointType
Definition: tetrahedron_gauss_legendre_integration_points.h:214
IntegrationPoint< 3 > IntegrationPointType
Definition: tetrahedron_gauss_legendre_integration_points.h:210
static SizeType IntegrationPointsNumber()
Definition: tetrahedron_gauss_legendre_integration_points.h:216
static const IntegrationPointsArrayType & IntegrationPoints()
Definition: tetrahedron_gauss_legendre_integration_points.h:221
std::array< IntegrationPointType, 24 > IntegrationPointsArrayType
Definition: tetrahedron_gauss_legendre_integration_points.h:212
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21