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.
fluid_element_utilities.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: Ruben Zorrilla
11 // Jordi Cotela
12 //
13 
14 #if !defined(KRATOS_FLUID_ELEMENT_UTILITIES_H )
15 #define KRATOS_FLUID_ELEMENT_UTILITIES_H
16 
17 // External includes
18 
19 // Project includes
20 #include "includes/define.h"
21 
22 // Application includes
24 
25 
26 namespace Kratos
27 {
30 
33 
37 
41 
45 
49 
51 template< std::size_t TNumNodes >
53 public:
56 
59 
62 
65 
69 
70  // Deleted default constructor
72 
75 
78 
82 
85 
89 
97  static void GetStrainMatrix(
98  const ShapeDerivatives2DType& rDNDX,
100 
108  static void GetStrainMatrix(
109  const ShapeDerivatives3DType& rDNDX,
111 
118  static void GetNewtonianConstitutiveMatrix(
119  const double DynamicViscosity,
121 
128  static void GetNewtonianConstitutiveMatrix(
129  const double DynamicViscosity,
131 
140  static void VoigtTransformForProduct(
141  const array_1d<double,3>& rVector,
143 
152  static void VoigtTransformForProduct(
153  const array_1d<double,3>& rVector,
155 
161  static void SetNormalProjectionMatrix(
162  const array_1d<double, 3>& rUnitNormal,
163  BoundedMatrix<double, 2, 2>& rNormalProjMatrix);
164 
170  static void SetNormalProjectionMatrix(
171  const array_1d<double, 3>& rUnitNormal,
172  BoundedMatrix<double, 3, 3>& rNormalProjMatrix);
173 
179  static void SetTangentialProjectionMatrix(
180  const array_1d<double, 3>& rUnitNormal,
181  BoundedMatrix<double, 2, 2>& rTangProjMatrix);
182 
188  static void SetTangentialProjectionMatrix(
189  const array_1d<double, 3>& rUnitNormal,
190  BoundedMatrix<double, 3, 3>& rTangProjMatrix);
191 
198  static void DenseSystemSolve(
199  const BoundedMatrix<double,2,2> &rA,
200  const array_1d<double,2> &rB,
201  array_1d<double,2> &rX);
202 
209  static void DenseSystemSolve(
210  const BoundedMatrix<double,3,3> &rA,
211  const array_1d<double,3> &rB,
212  array_1d<double,3> &rX);
213 
215 
216 }; // Class FluidElementUtilities
217 
219 
221 
222 } // namespace Kratos.
223 
224 #endif // KRATOS_FLUID_ELEMENT_UTILITIES_H defined
225 
226 
Base class for data containers used within FluidElement and derived types.
Definition: fluid_element_data.h:37
Auxiliary and specialized functions for elements derived from FluidElement.
Definition: fluid_element_utilities.h:52
typename FluidElementData< 2, TNumNodes, false >::ShapeDerivativesType ShapeDerivatives2DType
Definition: fluid_element_utilities.h:60
~FluidElementUtilities()
Destructor.
Definition: fluid_element_utilities.cpp:19
static void VoigtTransformForProduct(const array_1d< double, 3 > &rVector, BoundedMatrix< double, 2, VoigtVector2DSize > &rVoigtMatrix)
Definition: fluid_element_utilities.cpp:105
static void GetStrainMatrix(const ShapeDerivatives2DType &rDNDX, BoundedMatrix< double, VoigtVector2DSize, 3 *TNumNodes > &rStrainMatrix)
Definition: fluid_element_utilities.cpp:23
static void DenseSystemSolve(const BoundedMatrix< double, 2, 2 > &rA, const array_1d< double, 2 > &rB, array_1d< double, 2 > &rX)
Definition: fluid_element_utilities.cpp:177
FluidElementUtilities(FluidElementUtilities const &rOther)=delete
Deleted copy constructor.
typename FluidElementData< 3, TNumNodes, false >::ShapeDerivativesType ShapeDerivatives3DType
Definition: fluid_element_utilities.h:61
static void GetNewtonianConstitutiveMatrix(const double DynamicViscosity, BoundedMatrix< double, VoigtVector2DSize, VoigtVector2DSize > &rConstitutiveMatrix)
Definition: fluid_element_utilities.cpp:58
constexpr static std::size_t VoigtVector2DSize
Definition: fluid_element_utilities.h:63
KRATOS_CLASS_POINTER_DEFINITION(FluidElementUtilities)
Pointer definition of FluidElementUtilities.
constexpr static std::size_t VoigtVector3DSize
Definition: fluid_element_utilities.h:64
static void SetTangentialProjectionMatrix(const array_1d< double, 3 > &rUnitNormal, BoundedMatrix< double, 2, 2 > &rTangProjMatrix)
Definition: fluid_element_utilities.cpp:156
FluidElementUtilities & operator=(FluidElementUtilities const &rOther)=delete
Deleted assignment operator.
static void SetNormalProjectionMatrix(const array_1d< double, 3 > &rUnitNormal, BoundedMatrix< double, 2, 2 > &rNormalProjMatrix)
Definition: fluid_element_utilities.cpp:136
Definition: amatrix_interface.h:41
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21