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.
line_gauss_lobatto_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_LINE_GAUSS_LOBATTO_INTEGRATION_POINTS_H_INCLUDED )
16 #define KRATOS_LINE_GAUSS_LOBATTO_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 {
30 {
31 public:
33  typedef std::size_t SizeType;
34 
35  static const unsigned int Dimension = 1;
36 
38 
39  typedef std::array<IntegrationPointType, 1> IntegrationPointsArrayType;
40 
42 
44  {
45  return 1;
46  }
47 
49  {
50  static const IntegrationPointsArrayType s_integration_points{{
51  IntegrationPointType(0.00, 2.00)
52  }};
53  return s_integration_points;
54  }
55 
56  std::string Info() const
57  {
58  std::stringstream buffer;
59  buffer << "Line Gauss-Lobatto quadrature 1 ";
60  return buffer.str();
61  }
62 
63 
64 };
65 
66 
68 {
69 public:
71  typedef std::size_t SizeType;
72 
73  static const unsigned int Dimension = 1;
74 
76 
77  typedef std::array<IntegrationPointType, 2> IntegrationPointsArrayType;
78 
80 
82  {
83  return 2;
84  }
85 
87  {
88  static const IntegrationPointsArrayType s_integration_points{{
89  IntegrationPointType(-1.00, 1.00),
90  IntegrationPointType( 1.00, 1.00)
91  }};
92  return s_integration_points;
93  }
94 
95  std::string Info() const
96  {
97  std::stringstream buffer;
98  buffer << "Line Gauss-Lobatto quadrature 2 ";
99  return buffer.str();
100  }
101 
102 
103 };
104 
105 
107 {
108 public:
110  typedef std::size_t SizeType;
111 
112  static const unsigned int Dimension = 1;
113 
115 
116  typedef std::array<IntegrationPointType, 3> IntegrationPointsArrayType;
117 
119 
121  {
122  return 3;
123  }
124 
126  {
127  static const IntegrationPointsArrayType s_integration_points{{
128  IntegrationPointType(-1.00, 1.00 / 3.00),
129  IntegrationPointType( 0.00, 4.00 / 3.00),
130  IntegrationPointType( 1.00, 1.00 / 3.00)
131  }};
132  return s_integration_points;
133  }
134 
135  std::string Info() const
136  {
137  std::stringstream buffer;
138  buffer << "Line Gauss-Lobatto quadrature 3 ";
139  return buffer.str();
140  }
141 
142 
143 }; // Class LineGaussLobattoIntegrationPoints3
144 
145 
146 
148 {
149 public:
151  typedef std::size_t SizeType;
152 
153  static const unsigned int Dimension = 1;
154 
156 
157  typedef std::array<IntegrationPointType, 4> IntegrationPointsArrayType;
158 
160 
162  {
163  return 4;
164  }
165 
167  {
168  static const IntegrationPointsArrayType s_integration_points{{
169  IntegrationPointType(-1.00, 1.00 / 6.00),
170  IntegrationPointType(-std::sqrt(5.00) / 5.00, 5.00 / 6.00),
171  IntegrationPointType( std::sqrt(5.00) / 5.00, 5.00 / 6.00),
172  IntegrationPointType( 1.00, 1.00 / 6.00)
173  }};
174  return s_integration_points;
175  }
176 
177  std::string Info() const
178  {
179  std::stringstream buffer;
180  buffer << "Line Gauss-Lobatto quadrature 4 ";
181  return buffer.str();
182  }
183 
184 
185 }; // Class LineGaussLobattoIntegrationPoints4
186 
187 
188 
190 {
191 public:
193  typedef std::size_t SizeType;
194 
195  static const unsigned int Dimension = 1;
196 
198 
199  typedef std::array<IntegrationPointType, 5> IntegrationPointsArrayType;
200 
202 
204  {
205  return 5;
206  }
207 
209  {
210  static const IntegrationPointsArrayType s_integration_points{{
211  IntegrationPointType(-1.00, 0.10),
212  IntegrationPointType(-std::sqrt(21.00) / 7.00, 49.00 / 90.00),
213  IntegrationPointType( 0.00, 32.00 / 45.00),
214  IntegrationPointType( std::sqrt(21.00) / 7.00, 49.00 / 90.00),
215  IntegrationPointType( 1.00, 0.10)
216  }};
217  return s_integration_points;
218  }
219 
220  std::string Info() const
221  {
222  std::stringstream buffer;
223  buffer << "Line Gauss-Lobatto quadrature 5 ";
224  return buffer.str();
225  }
226 
227 
228 }; // Class LineGaussLobattoIntegrationPoints5
229 
230 
231 
233 {
234 public:
236  typedef std::size_t SizeType;
237 
238  static const unsigned int Dimension = 1;
239 
241 
242  typedef std::array<IntegrationPointType, 6> IntegrationPointsArrayType;
243 
245 
247  {
248  return 6;
249  }
250 
252  {
253  static const IntegrationPointsArrayType s_integration_points{{
254  IntegrationPointType(-1.00, 1.00 / 15.00),
255  IntegrationPointType(-std::sqrt((7.00+2.00*std::sqrt(7)) / 21.00), (14.00-std::sqrt(7)) / 30.00),
256  IntegrationPointType(-std::sqrt((7.00-2.00*std::sqrt(7)) / 21.00), (14.00+std::sqrt(7)) / 30.00),
257  IntegrationPointType( std::sqrt((7.00-2.00*std::sqrt(7)) / 21.00), (14.00+std::sqrt(7)) / 30.00),
258  IntegrationPointType( std::sqrt((7.00+2.00*std::sqrt(7)) / 21.00), (14.00-std::sqrt(7)) / 30.00),
259  IntegrationPointType( 1.00, 1.00 / 15.00)
260  }};
261  return s_integration_points;
262  }
263 
264  std::string Info() const
265  {
266  std::stringstream buffer;
267  buffer << "Line Gauss-Lobatto quadrature 6 ";
268  return buffer.str();
269  }
270 
271 
272 }; // Class LineGaussLobattoIntegrationPoints6
273 
274 
275 
277 {
278 public:
280  typedef std::size_t SizeType;
281 
282  static const unsigned int Dimension = 1;
283 
285 
286  typedef std::array<IntegrationPointType, 7> IntegrationPointsArrayType;
287 
289 
291  {
292  return 7;
293  }
294 
296  {
297  static const IntegrationPointsArrayType s_integration_points{{
298  IntegrationPointType(-1.00, 1.00 / 21.00),
299  IntegrationPointType(-std::sqrt((5.00/11.00) + (2.00/11.00)*std::sqrt(5.00/3.00)), (124.00 - 7.00*std::sqrt(15.00)) / 350.00),
300  IntegrationPointType(-std::sqrt((5.00/11.00) - (2.00/11.00)*std::sqrt(5.00/3.00)), (124.00 + 7.00*std::sqrt(15.00)) / 350.00),
301  IntegrationPointType(0.00, 256.00/525.00),
302  IntegrationPointType(std::sqrt((5.00/11.00) - (2.00/11.00)*std::sqrt(5.00/3.00)), (124.00 + 7.00*std::sqrt(15.00)) / 350.00),
303  IntegrationPointType(std::sqrt((5.00/11.00) + (2.00/11.00)*std::sqrt(5.00/3.00)), (124.00 - 7.00*std::sqrt(15.00)) / 350.00),
304  IntegrationPointType(-1.00, 1.00 / 21.00)
305  }};
306  return s_integration_points;
307  }
308 
309  std::string Info() const
310  {
311  std::stringstream buffer;
312  buffer << "Line Gauss-Lobatto quadrature 7 ";
313  return buffer.str();
314  }
315 
316 
317 }; // Class LineGaussLobattoIntegrationPoints7
318 
319 
320 
322 {
323 public:
325  typedef std::size_t SizeType;
326 
327  static const unsigned int Dimension = 1;
328 
330 
331  typedef std::array<IntegrationPointType, 8> IntegrationPointsArrayType;
332 
334 
336  {
337  return 8;
338  }
339 
341  {
342  static const IntegrationPointsArrayType s_integration_points{{
343  IntegrationPointType(-1.00 , 0.035714285714286),
344  IntegrationPointType(-0.871740148509607, 0.210704227143506),
345  IntegrationPointType(-0.591700181433142, 0.341122692483504),
346  IntegrationPointType(-0.209299217902479, 0.412458794658704),
347  IntegrationPointType( 0.209299217902479, 0.412458794658704),
348  IntegrationPointType( 0.591700181433142, 0.341122692483504),
349  IntegrationPointType( 0.871740148509607, 0.210704227143506),
350  IntegrationPointType( 1.00 , 0.035714285714286)
351  }};
352  return s_integration_points;
353  }
354 
355  std::string Info() const
356  {
357  std::stringstream buffer;
358  buffer << "Line Gauss-Lobatto quadrature 8 ";
359  return buffer.str();
360  }
361 
362 
363 }; // Class LineGaussLobattoIntegrationPoints8
364 
365 
366 
368 {
369 public:
371  typedef std::size_t SizeType;
372 
373  static const unsigned int Dimension = 1;
374 
376 
377  typedef std::array<IntegrationPointType, 9> IntegrationPointsArrayType;
378 
380 
382  {
383  return 9;
384  }
385 
387  {
388  static const IntegrationPointsArrayType s_integration_points{{
389  IntegrationPointType(-1.00 , 0.027777777777778),
390  IntegrationPointType(-0.899757995411460, 0.165495361560806),
391  IntegrationPointType(-0.677186279510738, 0.274538712500162),
392  IntegrationPointType(-0.363117463826178, 0.346428510973046),
393  IntegrationPointType( 0.00 , 0.371519274376417),
394  IntegrationPointType( 0.363117463826178, 0.346428510973046),
395  IntegrationPointType( 0.677186279510738, 0.274538712500162),
396  IntegrationPointType( 0.899757995411460, 0.165495361560806),
397  IntegrationPointType( 1.00 , 0.027777777777778)
398  }};
399  return s_integration_points;
400  }
401 
402  std::string Info() const
403  {
404  std::stringstream buffer;
405  buffer << "Line Gauss-Lobatto quadrature 9 ";
406  return buffer.str();
407  }
408 
409 
410 }; // Class LineGaussLobattoIntegrationPoints9
411 
412 
413 
415 {
416 public:
418  typedef std::size_t SizeType;
419 
420  static const unsigned int Dimension = 1;
421 
423 
424  typedef std::array<IntegrationPointType, 10> IntegrationPointsArrayType;
425 
427 
429  {
430  return 10;
431  }
432 
434  {
435  static const IntegrationPointsArrayType s_integration_points{{
436  IntegrationPointType(-1.00 , 0.022222222222222),
437  IntegrationPointType(-0.919533908166459, 0.133305990851070),
438  IntegrationPointType(-0.738773865105505, 0.224889342063126),
439  IntegrationPointType(-0.477924949810444, 0.292042683679684),
440  IntegrationPointType(-0.165278957666387, 0.327539761183897),
441  IntegrationPointType( 0.165278957666387, 0.327539761183897),
442  IntegrationPointType( 0.477924949810444, 0.292042683679684),
443  IntegrationPointType( 0.738773865105505, 0.224889342063126),
444  IntegrationPointType( 0.919533908166459, 0.133305990851070),
445  IntegrationPointType( 1.00 , 0.022222222222222)
446  }};
447  return s_integration_points;
448  }
449 
450  std::string Info() const
451  {
452  std::stringstream buffer;
453  buffer << "Line Gauss-Lobatto quadrature 10 ";
454  return buffer.str();
455  }
456 
457 
458 }; // Class LineGaussLobattoIntegrationPoints10
459 
460 
464 
465 
469 
470 
472 
473 
474 } // namespace Kratos.
475 
476 #endif // KRATOS_LINE_GAUSS_LOBATTO_INTEGRATION_POINTS_H_INCLUDED defined
477 
478 
Short class definition.
Definition: integration_point.h:52
Definition: line_gauss_lobatto_integration_points.h:415
std::string Info() const
Definition: line_gauss_lobatto_integration_points.h:450
IntegrationPointType::PointType PointType
Definition: line_gauss_lobatto_integration_points.h:426
std::array< IntegrationPointType, 10 > IntegrationPointsArrayType
Definition: line_gauss_lobatto_integration_points.h:424
static const IntegrationPointsArrayType & IntegrationPoints()
Definition: line_gauss_lobatto_integration_points.h:433
static const unsigned int Dimension
Definition: line_gauss_lobatto_integration_points.h:420
KRATOS_CLASS_POINTER_DEFINITION(LineGaussLobattoIntegrationPoints10)
std::size_t SizeType
Definition: line_gauss_lobatto_integration_points.h:418
IntegrationPoint< 1 > IntegrationPointType
Definition: line_gauss_lobatto_integration_points.h:422
static SizeType IntegrationPointsNumber()
Definition: line_gauss_lobatto_integration_points.h:428
Definition: line_gauss_lobatto_integration_points.h:30
IntegrationPoint< 1 > IntegrationPointType
Definition: line_gauss_lobatto_integration_points.h:37
std::size_t SizeType
Definition: line_gauss_lobatto_integration_points.h:33
IntegrationPointType::PointType PointType
Definition: line_gauss_lobatto_integration_points.h:41
static SizeType IntegrationPointsNumber()
Definition: line_gauss_lobatto_integration_points.h:43
KRATOS_CLASS_POINTER_DEFINITION(LineGaussLobattoIntegrationPoints1)
static const IntegrationPointsArrayType & IntegrationPoints()
Definition: line_gauss_lobatto_integration_points.h:48
std::string Info() const
Definition: line_gauss_lobatto_integration_points.h:56
static const unsigned int Dimension
Definition: line_gauss_lobatto_integration_points.h:35
std::array< IntegrationPointType, 1 > IntegrationPointsArrayType
Definition: line_gauss_lobatto_integration_points.h:39
Definition: line_gauss_lobatto_integration_points.h:68
static SizeType IntegrationPointsNumber()
Definition: line_gauss_lobatto_integration_points.h:81
std::string Info() const
Definition: line_gauss_lobatto_integration_points.h:95
std::array< IntegrationPointType, 2 > IntegrationPointsArrayType
Definition: line_gauss_lobatto_integration_points.h:77
KRATOS_CLASS_POINTER_DEFINITION(LineGaussLobattoIntegrationPoints2)
static const IntegrationPointsArrayType & IntegrationPoints()
Definition: line_gauss_lobatto_integration_points.h:86
std::size_t SizeType
Definition: line_gauss_lobatto_integration_points.h:71
static const unsigned int Dimension
Definition: line_gauss_lobatto_integration_points.h:73
IntegrationPointType::PointType PointType
Definition: line_gauss_lobatto_integration_points.h:79
IntegrationPoint< 1 > IntegrationPointType
Definition: line_gauss_lobatto_integration_points.h:75
Definition: line_gauss_lobatto_integration_points.h:107
std::array< IntegrationPointType, 3 > IntegrationPointsArrayType
Definition: line_gauss_lobatto_integration_points.h:116
std::size_t SizeType
Definition: line_gauss_lobatto_integration_points.h:110
static SizeType IntegrationPointsNumber()
Definition: line_gauss_lobatto_integration_points.h:120
IntegrationPoint< 1 > IntegrationPointType
Definition: line_gauss_lobatto_integration_points.h:114
IntegrationPointType::PointType PointType
Definition: line_gauss_lobatto_integration_points.h:118
static const unsigned int Dimension
Definition: line_gauss_lobatto_integration_points.h:112
KRATOS_CLASS_POINTER_DEFINITION(LineGaussLobattoIntegrationPoints3)
std::string Info() const
Definition: line_gauss_lobatto_integration_points.h:135
static const IntegrationPointsArrayType & IntegrationPoints()
Definition: line_gauss_lobatto_integration_points.h:125
Definition: line_gauss_lobatto_integration_points.h:148
KRATOS_CLASS_POINTER_DEFINITION(LineGaussLobattoIntegrationPoints4)
static SizeType IntegrationPointsNumber()
Definition: line_gauss_lobatto_integration_points.h:161
IntegrationPoint< 1 > IntegrationPointType
Definition: line_gauss_lobatto_integration_points.h:155
IntegrationPointType::PointType PointType
Definition: line_gauss_lobatto_integration_points.h:159
static const unsigned int Dimension
Definition: line_gauss_lobatto_integration_points.h:153
std::array< IntegrationPointType, 4 > IntegrationPointsArrayType
Definition: line_gauss_lobatto_integration_points.h:157
static const IntegrationPointsArrayType & IntegrationPoints()
Definition: line_gauss_lobatto_integration_points.h:166
std::string Info() const
Definition: line_gauss_lobatto_integration_points.h:177
std::size_t SizeType
Definition: line_gauss_lobatto_integration_points.h:151
Definition: line_gauss_lobatto_integration_points.h:190
std::array< IntegrationPointType, 5 > IntegrationPointsArrayType
Definition: line_gauss_lobatto_integration_points.h:199
KRATOS_CLASS_POINTER_DEFINITION(LineGaussLobattoIntegrationPoints5)
std::string Info() const
Definition: line_gauss_lobatto_integration_points.h:220
static SizeType IntegrationPointsNumber()
Definition: line_gauss_lobatto_integration_points.h:203
static const IntegrationPointsArrayType & IntegrationPoints()
Definition: line_gauss_lobatto_integration_points.h:208
static const unsigned int Dimension
Definition: line_gauss_lobatto_integration_points.h:195
IntegrationPoint< 1 > IntegrationPointType
Definition: line_gauss_lobatto_integration_points.h:197
std::size_t SizeType
Definition: line_gauss_lobatto_integration_points.h:193
IntegrationPointType::PointType PointType
Definition: line_gauss_lobatto_integration_points.h:201
Definition: line_gauss_lobatto_integration_points.h:233
std::size_t SizeType
Definition: line_gauss_lobatto_integration_points.h:236
IntegrationPoint< 1 > IntegrationPointType
Definition: line_gauss_lobatto_integration_points.h:240
static const IntegrationPointsArrayType & IntegrationPoints()
Definition: line_gauss_lobatto_integration_points.h:251
KRATOS_CLASS_POINTER_DEFINITION(LineGaussLobattoIntegrationPoints6)
static const unsigned int Dimension
Definition: line_gauss_lobatto_integration_points.h:238
IntegrationPointType::PointType PointType
Definition: line_gauss_lobatto_integration_points.h:244
static SizeType IntegrationPointsNumber()
Definition: line_gauss_lobatto_integration_points.h:246
std::string Info() const
Definition: line_gauss_lobatto_integration_points.h:264
std::array< IntegrationPointType, 6 > IntegrationPointsArrayType
Definition: line_gauss_lobatto_integration_points.h:242
Definition: line_gauss_lobatto_integration_points.h:277
std::string Info() const
Definition: line_gauss_lobatto_integration_points.h:309
std::array< IntegrationPointType, 7 > IntegrationPointsArrayType
Definition: line_gauss_lobatto_integration_points.h:286
static const unsigned int Dimension
Definition: line_gauss_lobatto_integration_points.h:282
IntegrationPointType::PointType PointType
Definition: line_gauss_lobatto_integration_points.h:288
std::size_t SizeType
Definition: line_gauss_lobatto_integration_points.h:280
KRATOS_CLASS_POINTER_DEFINITION(LineGaussLobattoIntegrationPoints7)
static SizeType IntegrationPointsNumber()
Definition: line_gauss_lobatto_integration_points.h:290
IntegrationPoint< 1 > IntegrationPointType
Definition: line_gauss_lobatto_integration_points.h:284
static const IntegrationPointsArrayType & IntegrationPoints()
Definition: line_gauss_lobatto_integration_points.h:295
Definition: line_gauss_lobatto_integration_points.h:322
std::string Info() const
Definition: line_gauss_lobatto_integration_points.h:355
std::size_t SizeType
Definition: line_gauss_lobatto_integration_points.h:325
static SizeType IntegrationPointsNumber()
Definition: line_gauss_lobatto_integration_points.h:335
static const unsigned int Dimension
Definition: line_gauss_lobatto_integration_points.h:327
std::array< IntegrationPointType, 8 > IntegrationPointsArrayType
Definition: line_gauss_lobatto_integration_points.h:331
KRATOS_CLASS_POINTER_DEFINITION(LineGaussLobattoIntegrationPoints8)
IntegrationPointType::PointType PointType
Definition: line_gauss_lobatto_integration_points.h:333
IntegrationPoint< 1 > IntegrationPointType
Definition: line_gauss_lobatto_integration_points.h:329
static const IntegrationPointsArrayType & IntegrationPoints()
Definition: line_gauss_lobatto_integration_points.h:340
Definition: line_gauss_lobatto_integration_points.h:368
static SizeType IntegrationPointsNumber()
Definition: line_gauss_lobatto_integration_points.h:381
std::size_t SizeType
Definition: line_gauss_lobatto_integration_points.h:371
KRATOS_CLASS_POINTER_DEFINITION(LineGaussLobattoIntegrationPoints9)
std::string Info() const
Definition: line_gauss_lobatto_integration_points.h:402
static const IntegrationPointsArrayType & IntegrationPoints()
Definition: line_gauss_lobatto_integration_points.h:386
IntegrationPointType::PointType PointType
Definition: line_gauss_lobatto_integration_points.h:379
std::array< IntegrationPointType, 9 > IntegrationPointsArrayType
Definition: line_gauss_lobatto_integration_points.h:377
static const unsigned int Dimension
Definition: line_gauss_lobatto_integration_points.h:373
IntegrationPoint< 1 > IntegrationPointType
Definition: line_gauss_lobatto_integration_points.h:375
Point class.
Definition: point.h:59
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21