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.
vorticity_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: Michael Andre, https://github.com/msandre
11 // Jordi Cotela
12 //
13 
14 #if !defined(KRATOS_VORTICITY_UTILITIES_H )
15 #define KRATOS_VORTICITY_UTILITIES_H
16 
17 // External includes
18 
19 // Project includes
20 #include "includes/define.h"
21 #include "includes/node.h"
22 #include "geometries/geometry.h"
23 
24 namespace Kratos
25 {
28 
31 
33 template< std::size_t TDim >
35 public:
38 
41 
44 
48 
49  // Deleted default constructor
50  VorticityUtilities() = delete;
51 
53  VorticityUtilities(VorticityUtilities const& rOther) = delete;
54 
57 
61 
64 
68 
69  static void CalculateQValue(
70  const Geometry<Node>& rGeometry,
71  const ShapeFunctionDerivativesArrayType& rShapeFunctionsGradients,
72  std::vector<double>& rQValues);
73 
74  static void CalculateVorticityMagnitude(
75  const Geometry<Node>& rGeometry,
76  const ShapeFunctionDerivativesArrayType& rShapeFunctionsGradients,
77  std::vector<double>& rVorticityMagnitudes);
78 
79  static void CalculateVorticityVector(
80  const Geometry<Node>& rGeometry,
81  const ShapeFunctionDerivativesArrayType& rShapeFunctionsGradients,
82  std::vector<array_1d<double,3>>& rVorticities);
83 
85 private:
86 
89 
90  static void NodalContributionToVorticityVector(
91  const Matrix& rDN_DX,
92  const array_1d<double, 3 > & rVelocity,
93  const unsigned int iNode,
94  array_1d<double,3>& rVorticity);
95 
97 
98 }; // Class VorticityUtilities
99 
101 
103 
104 } // namespace Kratos.
105 
106 #endif // KRATOS_VORTICITY_UTILITIES_H defined
107 
108 
Geometry base class.
Definition: geometry.h:71
Definition: amatrix_interface.h:41
A set of functions to compute quantities of interest for turbulent flows.
Definition: vorticity_utilities.h:34
VorticityUtilities & operator=(VorticityUtilities const &rOther)=delete
Deleted assignment operator.
KRATOS_CLASS_POINTER_DEFINITION(VorticityUtilities)
Pointer definition of VorticityUtilities.
VorticityUtilities(VorticityUtilities const &rOther)=delete
Deleted copy constructor.
Geometry< Node >::ShapeFunctionsGradientsType ShapeFunctionDerivativesArrayType
Type for an array of shape function gradient matrices.
Definition: vorticity_utilities.h:43
static void CalculateVorticityVector(const Geometry< Node > &rGeometry, const ShapeFunctionDerivativesArrayType &rShapeFunctionsGradients, std::vector< array_1d< double, 3 >> &rVorticities)
Definition: vorticity_utilities.cpp:88
~VorticityUtilities()
Destructor.
Definition: vorticity_utilities.cpp:20
static void CalculateVorticityMagnitude(const Geometry< Node > &rGeometry, const ShapeFunctionDerivativesArrayType &rShapeFunctionsGradients, std::vector< double > &rVorticityMagnitudes)
Definition: vorticity_utilities.cpp:62
static void CalculateQValue(const Geometry< Node > &rGeometry, const ShapeFunctionDerivativesArrayType &rShapeFunctionsGradients, std::vector< double > &rQValues)
Definition: vorticity_utilities.cpp:23
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21