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.
hexahedron_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 #if !defined(KRATOS_HEXAHEDRON_GAUSS_LOBATTO_INTEGRATION_POINTS_H_INCLUDED )
15 #define KRATOS_HEXAHEDRON_GAUSS_LOBATTO_INTEGRATION_POINTS_H_INCLUDED
16 
17 
18 // System includes
19 
20 // External includes
21 
22 // Project includes
23 #include "integration/quadrature.h"
24 
25 //TO BE COMPLETED: Only the needed ones have been implemented
26 
27 namespace Kratos
28 {
29 
30 //TODO
32 {
33 public:
35  typedef std::size_t SizeType;
36 
37  static const unsigned int Dimension = 3;
38 
40 
41  typedef std::array<IntegrationPointType, 4> IntegrationPointsArrayType;
42 
44 
46  {
47  return 4;
48  }
49 
51  {
52  static const IntegrationPointsArrayType s_integration_points{{
53  IntegrationPointType( -1.00 , -1.00, 0.00, 1.00 ),
54  IntegrationPointType( 1.00 , -1.00, 0.00, 1.00 ),
55  IntegrationPointType( 1.00 , 1.00, 0.00, 1.00 ),
56  IntegrationPointType( -1.00 , 1.00, 0.00, 1.00 )
57  }};
58  return s_integration_points;
59  }
60 
61  std::string Info() const
62  {
63  std::stringstream buffer;
64  buffer << "Hexahedron Gauss-Lobatto quadrature 1 ";
65  return buffer.str();
66  }
67 
68 
69 }; // Class HexahedronGaussLobattoIntegrationPoints1
70 
72 {
73 public:
75  typedef std::size_t SizeType;
76 
77  static const unsigned int Dimension = 3;
78 
80 
81  typedef std::array<IntegrationPointType, 8> IntegrationPointsArrayType;
82 
84 
86  {
87  return 8;
88  }
89 
91  {
92  static const IntegrationPointsArrayType s_integration_points{{
93  IntegrationPointType( -1.00 , -1.00, -1.00, 0.50 ),
94  IntegrationPointType( 1.00 , -1.00, -1.00, 0.50 ),
95  IntegrationPointType( 1.00 , 1.00, -1.00, 0.50 ),
96  IntegrationPointType( -1.00 , 1.00, -1.00, 0.50 ),
97  IntegrationPointType( -1.00 , -1.00, 1.00, 0.50 ),
98  IntegrationPointType( 1.00 , -1.00, 1.00, 0.50 ),
99  IntegrationPointType( 1.00 , 1.00, 1.00, 0.50 ),
100  IntegrationPointType( -1.00 , 1.00, 1.00, 0.50 )
101  }};
102  return s_integration_points;
103  }
104 
105  std::string Info() const
106  {
107  std::stringstream buffer;
108  buffer << "Hexahedron Gauss-Lobatto quadrature 2 ";
109  return buffer.str();
110  }
111 
112 
113 }; // Class HexahedronGaussLobattoIntegrationPoints2
114 
115 
116 
117 }
118 
119 #endif // KRATOS_HEXAHEDRON_GAUSS_LOBATTO_INTEGRATION_POINTS_H_INCLUDED defined
120 
121 
Definition: hexahedron_gauss_lobatto_integration_points.h:32
std::string Info() const
Definition: hexahedron_gauss_lobatto_integration_points.h:61
KRATOS_CLASS_POINTER_DEFINITION(HexahedronGaussLobattoIntegrationPoints1)
static const unsigned int Dimension
Definition: hexahedron_gauss_lobatto_integration_points.h:37
IntegrationPointType::PointType PointType
Definition: hexahedron_gauss_lobatto_integration_points.h:43
static SizeType IntegrationPointsNumber()
Definition: hexahedron_gauss_lobatto_integration_points.h:45
static const IntegrationPointsArrayType & IntegrationPoints()
Definition: hexahedron_gauss_lobatto_integration_points.h:50
IntegrationPoint< 3 > IntegrationPointType
Definition: hexahedron_gauss_lobatto_integration_points.h:39
std::size_t SizeType
Definition: hexahedron_gauss_lobatto_integration_points.h:35
std::array< IntegrationPointType, 4 > IntegrationPointsArrayType
Definition: hexahedron_gauss_lobatto_integration_points.h:41
Definition: hexahedron_gauss_lobatto_integration_points.h:72
std::string Info() const
Definition: hexahedron_gauss_lobatto_integration_points.h:105
IntegrationPointType::PointType PointType
Definition: hexahedron_gauss_lobatto_integration_points.h:83
IntegrationPoint< 3 > IntegrationPointType
Definition: hexahedron_gauss_lobatto_integration_points.h:79
static SizeType IntegrationPointsNumber()
Definition: hexahedron_gauss_lobatto_integration_points.h:85
static const IntegrationPointsArrayType & IntegrationPoints()
Definition: hexahedron_gauss_lobatto_integration_points.h:90
static const unsigned int Dimension
Definition: hexahedron_gauss_lobatto_integration_points.h:77
std::size_t SizeType
Definition: hexahedron_gauss_lobatto_integration_points.h:75
KRATOS_CLASS_POINTER_DEFINITION(HexahedronGaussLobattoIntegrationPoints2)
std::array< IntegrationPointType, 8 > IntegrationPointsArrayType
Definition: hexahedron_gauss_lobatto_integration_points.h:81
Short class definition.
Definition: integration_point.h:52
Point class.
Definition: point.h:59
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21