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.
triangle_gauss_radau_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: hbui
11 //
12 //
13 
14 
15 #if !defined(KRATOS_TRIANGLE_GAUSS_RADAU_INTEGRATION_POINTS_H_INCLUDED )
16 #define KRATOS_TRIANGLE_GAUSS_RADAU_INTEGRATION_POINTS_H_INCLUDED
17 
18 // System includes
19 
20 // External includes
21 
22 // Project includes
23 #include "integration/quadrature.h"
24 
26 
27 namespace Kratos
28 {
29 
31 {
32 public:
34  typedef std::size_t SizeType;
35 
36  static const unsigned int Dimension = 2;
37 
39 
40  typedef std::array<IntegrationPointType, 3> IntegrationPointsArrayType;
41 
43 
45  {
46  return 3;
47  }
48 
50  {
51  static const IntegrationPointsArrayType s_integration_points{{
52  IntegrationPointType( 0.5 , 0.5 , 1.00 / 3.00 ),
53  IntegrationPointType( 0.5 , 0.0 , 1.00 / 3.00 ),
54  IntegrationPointType( 0.0 , 0.5 , 1.00 / 3.00 )
55  }};
56  return s_integration_points;
57  }
58 
59  std::string Info() const
60  {
61  std::stringstream buffer;
62  buffer << "Triangle Gauss-Radau quadrature 1 (3 points, degree of precision = 2) ";
63  return buffer.str();
64  }
65 
66 
67 }; // Class TriangleGaussRadauIntegrationPoints1
68 
69 
71 {
72 public:
74  typedef std::size_t SizeType;
75 
76  static const unsigned int Dimension = 2;
77 
79 
80  typedef std::array<IntegrationPointType, 4> IntegrationPointsArrayType;
81 
83 
85  {
86  return 4;
87  }
88 
90  {
91  static const IntegrationPointsArrayType s_integration_points{{
92  IntegrationPointType( 1.00 / 3.00 , 1.00 / 3.00 , -0.562500000000000 ),
93  IntegrationPointType( 0.6 , 0.2 , 0.520833333333333 ),
94  IntegrationPointType( 0.2 , 0.6 , 0.520833333333333 ),
95  IntegrationPointType( 0.2 , 0.2 , 0.520833333333333 )
96  }};
97  return s_integration_points;
98  }
99 
100  std::string Info() const
101  {
102  std::stringstream buffer;
103  buffer << "Triangle Gauss-Radau quadrature 2 (4 points, degree of precision = 3)";
104  return buffer.str();
105  }
106 
107 
108 }; // Class TriangleGaussRadauIntegrationPoints2
109 
110 
112 {
113 public:
115  typedef std::size_t SizeType;
116 
117  static const unsigned int Dimension = 2;
118 
120 
121  typedef std::array<IntegrationPointType, 6> IntegrationPointsArrayType;
122 
124 
126  {
127  return 6;
128  }
129 
131  {
132  static const IntegrationPointsArrayType s_integration_points{{
133  IntegrationPointType( 0.816847572980459 , 0.091576213509771 , 0.109951743655322 ),
134  IntegrationPointType( 0.091576213509771 , 0.816847572980459 , 0.109951743655322 ),
135  IntegrationPointType( 0.091576213509771 , 0.091576213509771 , 0.109951743655322 ),
136  IntegrationPointType( 0.108103018168070 , 0.445948490915965 , 0.223381589678011 ),
137  IntegrationPointType( 0.445948490915965 , 0.108103018168070 , 0.223381589678011 ),
138  IntegrationPointType( 0.445948490915965 , 0.445948490915965 , 0.223381589678011 )
139  }};
140  return s_integration_points;
141  }
142 
143  std::string Info() const
144  {
145  std::stringstream buffer;
146  buffer << "Triangle Gauss-Radau quadrature 3 (6 points, degree of precision = 4) ";
147  return buffer.str();
148  }
149 
150 
151 }; // Class TriangleGaussRadauIntegrationPoints2
152 
153 
155 {
156 public:
158  typedef std::size_t SizeType;
159 
160  static const unsigned int Dimension = 2;
161 
163 
164  typedef std::array<IntegrationPointType, 7> IntegrationPointsArrayType;
165 
167 
169  {
170  return 7;
171  }
172 
174  {
175  static const IntegrationPointsArrayType s_integration_points{{
176  IntegrationPointType( 1.00 / 3.00 , 1.00 / 3.00 , 0.225000000000000 ),
177  IntegrationPointType( 0.797426985353087 , 0.101286507323456 , 0.125939180544827 ),
178  IntegrationPointType( 0.101286507323456 , 0.797426985353087 , 0.125939180544827 ),
179  IntegrationPointType( 0.101286507323456 , 0.101286507323456 , 0.125939180544827 ),
180  IntegrationPointType( 0.470142064105115 , 0.059715871789770 , 0.132394152788506 ),
181  IntegrationPointType( 0.059715871789770 , 0.470142064105115 , 0.132394152788506 ),
182  IntegrationPointType( 0.470142064105115 , 0.470142064105115 , 0.132394152788506 )
183  }};
184  return s_integration_points;
185  }
186 
187  std::string Info() const
188  {
189  std::stringstream buffer;
190  buffer << "Triangle Gauss-Radau quadrature 4 (7 points, degree of precision = 5) ";
191  return buffer.str();
192  }
193 
194 
195 }; // Class TriangleGaussRadauIntegrationPoints4
196 
197 
199 {
200 public:
202  typedef std::size_t SizeType;
203 
204  static const unsigned int Dimension = 2;
205 
207 
208  typedef std::array<IntegrationPointType, 12> IntegrationPointsArrayType;
209 
211 
213  {
214  return 12;
215  }
216 
218  {
219  static const IntegrationPointsArrayType s_integration_points{{
220  IntegrationPointType( 0.873821971016996 , 0.063089014491502 , 0.050844906370207 ),
221  IntegrationPointType( 0.063089014491502 , 0.873821971016996 , 0.050844906370207 ),
222  IntegrationPointType( 0.063089014491502 , 0.063089014491502 , 0.050844906370207 ),
223  IntegrationPointType( 0.501426509658179 , 0.249286745170910 , 0.116786275726379 ),
224  IntegrationPointType( 0.249286745170910 , 0.501426509658179 , 0.116786275726379 ),
225  IntegrationPointType( 0.249286745170910 , 0.249286745170910 , 0.116786275726379 ),
226  IntegrationPointType( 0.636502499121399 , 0.310352451033785 , 0.082851075618374 ),
227  IntegrationPointType( 0.636502499121399 , 0.053145049844816 , 0.082851075618374 ),
228  IntegrationPointType( 0.310352451033785 , 0.636502499121399 , 0.082851075618374 ),
229  IntegrationPointType( 0.310352451033785 , 0.053145049844816 , 0.082851075618374 ),
230  IntegrationPointType( 0.053145049844816 , 0.636502499121399 , 0.082851075618374 ),
231  IntegrationPointType( 0.053145049844816 , 0.310352451033785 , 0.082851075618374 )
232  }};
233  return s_integration_points;
234  }
235 
236  std::string Info() const
237  {
238  std::stringstream buffer;
239  buffer << "Triangle Gauss-Radau quadrature 5 (12 points, degree of precision = 6) ";
240  return buffer.str();
241  }
242 
243 
244 }; // Class TriangleGaussRadauIntegrationPoints5
245 
246 
248 {
249 public:
251  typedef std::size_t SizeType;
252 
253  static const unsigned int Dimension = 2;
254 
256 
257  typedef std::array<IntegrationPointType, 13> IntegrationPointsArrayType;
258 
260 
262  {
263  return 13;
264  }
265 
267  {
268  static const IntegrationPointsArrayType s_integration_points{{
269  IntegrationPointType( 1.00 / 3.00 , 1.00 / 3.00 , -0.149570044467670 ),
270  IntegrationPointType( 0.479308067841923 , 0.260345966079038 , 0.175615257433204 ),
271  IntegrationPointType( 0.260345966079038 , 0.479308067841923 , 0.175615257433204 ),
272  IntegrationPointType( 0.260345966079038 , 0.260345966079038 , 0.175615257433204 ),
273  IntegrationPointType( 0.869739794195568 , 0.065130102902216 , 0.053347235608839 ),
274  IntegrationPointType( 0.065130102902216 , 0.869739794195568 , 0.053347235608839 ),
275  IntegrationPointType( 0.065130102902216 , 0.065130102902216 , 0.053347235608839 ),
276  IntegrationPointType( 0.638444188569809 , 0.312865496004875 , 0.077113760890257 ),
277  IntegrationPointType( 0.638444188569809 , 0.048690315425316 , 0.077113760890257 ),
278  IntegrationPointType( 0.312865496004875 , 0.638444188569809 , 0.077113760890257 ),
279  IntegrationPointType( 0.312865496004875 , 0.048690315425316 , 0.077113760890257 ),
280  IntegrationPointType( 0.048690315425316 , 0.638444188569809 , 0.077113760890257 ),
281  IntegrationPointType( 0.048690315425316 , 0.312865496004875 , 0.077113760890257 )
282  }};
283  return s_integration_points;
284  }
285 
286  std::string Info() const
287  {
288  std::stringstream buffer;
289  buffer << "Triangle Gauss-Radau quadrature 6 (13 points, degree of precision = 7) ";
290  return buffer.str();
291  }
292 
293 
294 }; // Class TriangleGaussRadauIntegrationPoints6
295 
296 
299 
300 
304 
305 
307 
308 
309 } // namespace Kratos.
310 
311 #endif // KRATOS_TRIANGLE_GAUSS_RADAU_INTEGRATION_POINTS_H_INCLUDED defined
312 
313 
Short class definition.
Definition: integration_point.h:52
Point class.
Definition: point.h:59
Definition: triangle_gauss_radau_integration_points.h:31
std::size_t SizeType
Definition: triangle_gauss_radau_integration_points.h:34
IntegrationPointType::PointType PointType
Definition: triangle_gauss_radau_integration_points.h:42
static const IntegrationPointsArrayType & IntegrationPoints()
Definition: triangle_gauss_radau_integration_points.h:49
IntegrationPoint< 2 > IntegrationPointType
Definition: triangle_gauss_radau_integration_points.h:38
std::array< IntegrationPointType, 3 > IntegrationPointsArrayType
Definition: triangle_gauss_radau_integration_points.h:40
static SizeType IntegrationPointsNumber()
Definition: triangle_gauss_radau_integration_points.h:44
KRATOS_CLASS_POINTER_DEFINITION(TriangleGaussRadauIntegrationPoints1)
static const unsigned int Dimension
Definition: triangle_gauss_radau_integration_points.h:36
std::string Info() const
Definition: triangle_gauss_radau_integration_points.h:59
Definition: triangle_gauss_radau_integration_points.h:71
static const IntegrationPointsArrayType & IntegrationPoints()
Definition: triangle_gauss_radau_integration_points.h:89
KRATOS_CLASS_POINTER_DEFINITION(TriangleGaussRadauIntegrationPoints2)
IntegrationPointType::PointType PointType
Definition: triangle_gauss_radau_integration_points.h:82
static const unsigned int Dimension
Definition: triangle_gauss_radau_integration_points.h:76
std::string Info() const
Definition: triangle_gauss_radau_integration_points.h:100
static SizeType IntegrationPointsNumber()
Definition: triangle_gauss_radau_integration_points.h:84
std::array< IntegrationPointType, 4 > IntegrationPointsArrayType
Definition: triangle_gauss_radau_integration_points.h:80
IntegrationPoint< 2 > IntegrationPointType
Definition: triangle_gauss_radau_integration_points.h:78
std::size_t SizeType
Definition: triangle_gauss_radau_integration_points.h:74
Definition: triangle_gauss_radau_integration_points.h:112
IntegrationPointType::PointType PointType
Definition: triangle_gauss_radau_integration_points.h:123
IntegrationPoint< 2 > IntegrationPointType
Definition: triangle_gauss_radau_integration_points.h:119
static const unsigned int Dimension
Definition: triangle_gauss_radau_integration_points.h:117
KRATOS_CLASS_POINTER_DEFINITION(TriangleGaussRadauIntegrationPoints3)
std::size_t SizeType
Definition: triangle_gauss_radau_integration_points.h:115
static const IntegrationPointsArrayType & IntegrationPoints()
Definition: triangle_gauss_radau_integration_points.h:130
std::string Info() const
Definition: triangle_gauss_radau_integration_points.h:143
static SizeType IntegrationPointsNumber()
Definition: triangle_gauss_radau_integration_points.h:125
std::array< IntegrationPointType, 6 > IntegrationPointsArrayType
Definition: triangle_gauss_radau_integration_points.h:121
Definition: triangle_gauss_radau_integration_points.h:155
static const unsigned int Dimension
Definition: triangle_gauss_radau_integration_points.h:160
static const IntegrationPointsArrayType & IntegrationPoints()
Definition: triangle_gauss_radau_integration_points.h:173
std::array< IntegrationPointType, 7 > IntegrationPointsArrayType
Definition: triangle_gauss_radau_integration_points.h:164
IntegrationPoint< 2 > IntegrationPointType
Definition: triangle_gauss_radau_integration_points.h:162
static SizeType IntegrationPointsNumber()
Definition: triangle_gauss_radau_integration_points.h:168
std::size_t SizeType
Definition: triangle_gauss_radau_integration_points.h:158
IntegrationPointType::PointType PointType
Definition: triangle_gauss_radau_integration_points.h:166
std::string Info() const
Definition: triangle_gauss_radau_integration_points.h:187
KRATOS_CLASS_POINTER_DEFINITION(TriangleGaussRadauIntegrationPoints4)
Definition: triangle_gauss_radau_integration_points.h:199
std::size_t SizeType
Definition: triangle_gauss_radau_integration_points.h:202
static const unsigned int Dimension
Definition: triangle_gauss_radau_integration_points.h:204
KRATOS_CLASS_POINTER_DEFINITION(TriangleGaussRadauIntegrationPoints5)
std::string Info() const
Definition: triangle_gauss_radau_integration_points.h:236
static SizeType IntegrationPointsNumber()
Definition: triangle_gauss_radau_integration_points.h:212
IntegrationPointType::PointType PointType
Definition: triangle_gauss_radau_integration_points.h:210
static const IntegrationPointsArrayType & IntegrationPoints()
Definition: triangle_gauss_radau_integration_points.h:217
std::array< IntegrationPointType, 12 > IntegrationPointsArrayType
Definition: triangle_gauss_radau_integration_points.h:208
IntegrationPoint< 2 > IntegrationPointType
Definition: triangle_gauss_radau_integration_points.h:206
Definition: triangle_gauss_radau_integration_points.h:248
std::string Info() const
Definition: triangle_gauss_radau_integration_points.h:286
static const unsigned int Dimension
Definition: triangle_gauss_radau_integration_points.h:253
std::array< IntegrationPointType, 13 > IntegrationPointsArrayType
Definition: triangle_gauss_radau_integration_points.h:257
std::size_t SizeType
Definition: triangle_gauss_radau_integration_points.h:251
IntegrationPointType::PointType PointType
Definition: triangle_gauss_radau_integration_points.h:259
static SizeType IntegrationPointsNumber()
Definition: triangle_gauss_radau_integration_points.h:261
KRATOS_CLASS_POINTER_DEFINITION(TriangleGaussRadauIntegrationPoints6)
IntegrationPoint< 2 > IntegrationPointType
Definition: triangle_gauss_radau_integration_points.h:255
static const IntegrationPointsArrayType & IntegrationPoints()
Definition: triangle_gauss_radau_integration_points.h:266
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21