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.
k_element_data.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: Suneth Warnakulasuriya
11 //
12 
13 #if !defined(KRATOS_K_OMEGA_SST_ELEMENT_DATA_K_ELEMENT_DATA_H_INCLUDED)
14 #define KRATOS_K_OMEGA_SST_ELEMENT_DATA_K_ELEMENT_DATA_H_INCLUDED
15 
16 // System includes
17 
18 // Project includes
19 #include "containers/array_1d.h"
20 #include "containers/variable.h"
22 #include "includes/node.h"
23 #include "includes/process_info.h"
25 
26 // Application includes
28 
29 namespace Kratos
30 {
33 
34 namespace KOmegaSSTElementData
35 {
36 template <unsigned int TDim>
38 {
39 public:
42 
44 
45  using NodeType = Node;
46 
48 
49  using ArrayD = typename BaseType::ArrayD;
50 
54 
56  const GeometryType& rGeometry,
57  const Properties& rProperties,
58  const ProcessInfo& rProcessInfo)
59  : BaseType(rGeometry, rProperties, rProcessInfo)
60  {
61  }
62 
63  ~KElementData() override = default;
64 
68 
69  static const Variable<double>& GetScalarVariable();
70 
71  static void Check(
72  const Element& rElement,
73  const ProcessInfo& rCurrentProcessInfo);
74 
75  static const std::string GetName()
76  {
77  return "KOmegaSSTKElementData";
78  }
79 
83 
84  void Calculate(
85  const Variable<double>& rVariable,
86  double& rOutput,
87  const ProcessInfo& rCurrentProcessInfo) override;
88 
89  void CalculateConstants(
90  const ProcessInfo& rCurrentProcessInfo);
91 
93  const Vector& rShapeFunctions,
94  const Matrix& rShapeFunctionDerivatives,
95  const int Step = 0);
96 
98 
99 protected:
102 
106  using BaseType::mSourceTerm;
107 
111 
112  double mSigmaK1;
113  double mSigmaK2;
114  double mSigmaOmega2;
115  double mBetaStar;
124  double mDensity;
125 
129 
131  const ProcessInfo& rCurrentProcessInfo);
132 
134 };
135 
137 
138 } // namespace KOmegaSSTElementData
139 
140 } // namespace Kratos
141 
142 #endif
Base class to hold Convection-Diffusion-Reaction transport equation data.
Definition: convection_diffusion_reaction_element_data.h:64
double mSourceTerm
Definition: convection_diffusion_reaction_element_data.h:137
double mReactionTerm
Definition: convection_diffusion_reaction_element_data.h:136
ArrayD mEffectiveVelocity
Definition: convection_diffusion_reaction_element_data.h:134
Geometry< Node > GeometryType
Definition: convection_diffusion_reaction_element_data.h:69
double mEffectiveKinematicViscosity
Definition: convection_diffusion_reaction_element_data.h:135
array_1d< double, TDim > ArrayD
Definition: convection_diffusion_reaction_element_data.h:71
Base class for all Elements.
Definition: element.h:60
Geometry base class.
Definition: geometry.h:71
Definition: k_element_data.h:38
BoundedMatrix< double, TDim, TDim > mVelocityGradient
Definition: k_element_data.h:108
double mTurbulentKineticEnergy
Definition: k_element_data.h:116
double mTurbulentSpecificEnergyDissipationRate
Definition: k_element_data.h:117
double mCrossDiffusion
Definition: k_element_data.h:121
double mKinematicViscosity
Definition: k_element_data.h:118
double mBlendedSimgaK
Definition: k_element_data.h:122
double mVelocityDivergence
Definition: k_element_data.h:123
void CalculateConstants(const ProcessInfo &rCurrentProcessInfo)
Definition: k_element_data.cpp:155
double CalculateEffectiveViscosity(const ProcessInfo &rCurrentProcessInfo)
Definition: k_element_data.cpp:90
void Calculate(const Variable< double > &rVariable, double &rOutput, const ProcessInfo &rCurrentProcessInfo) override
Definition: k_element_data.cpp:81
ArrayD mTurbulentKineticEnergyGradient
Definition: k_element_data.h:109
double mBetaStar
Definition: k_element_data.h:115
static const Variable< double > & GetScalarVariable()
Definition: k_element_data.cpp:35
double mDensity
Definition: k_element_data.h:124
void CalculateGaussPointData(const Vector &rShapeFunctions, const Matrix &rShapeFunctionDerivatives, const int Step=0)
Definition: k_element_data.cpp:166
KElementData(const GeometryType &rGeometry, const Properties &rProperties, const ProcessInfo &rProcessInfo)
Definition: k_element_data.h:55
static void Check(const Element &rElement, const ProcessInfo &rCurrentProcessInfo)
Definition: k_element_data.cpp:41
double mWallDistance
Definition: k_element_data.h:120
double mSigmaK2
Definition: k_element_data.h:113
double mSigmaOmega2
Definition: k_element_data.h:114
double mTurbulentKinematicViscosity
Definition: k_element_data.h:119
static const std::string GetName()
Definition: k_element_data.h:75
double mSigmaK1
Definition: k_element_data.h:112
ArrayD mTurbulentSpecificEnergyDissipationRateGradient
Definition: k_element_data.h:110
This class defines the node.
Definition: node.h:65
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
Properties encapsulates data shared by different Elements or Conditions. It can store any type of dat...
Definition: properties.h:69
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21