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.
rans_application.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_RANS_APPLICATION_H_INCLUDED)
14 #define KRATOS_RANS_APPLICATION_H_INCLUDED
15 
16 // System includes
17 
18 // External includes
19 
20 // Project includes
22 
23 // Application includes
24 
25 // incompressible potential flow elements
27 
28 // stabilized generic convection diffusion reaction elements
32 
33 // k-epsilon turbulence model element data
36 
37 // k-omega turbulence model element data
40 
41 // k-omega-sst turbulence model element data
44 
45 // vms monolithic wall conditions
47 
48 // fractional step wall conditions
50 
51 // incompressible potential flow conditions
53 
54 // generic scalar wall flux condition
56 
57 // k-epsilon turbulence model condition data
60 
61 // k-omega turbulence model condition data
64 
65 // constitutive laws
68 
69 namespace Kratos
70 {
73 
75 
77 class KRATOS_API(RANS_APPLICATION) KratosRANSApplication : public KratosApplication
78 {
79 public:
82 
85 
89 
92 
94  ~KratosRANSApplication() override = default;
95 
99 
100  void Register() override;
101 
105 
107  std::string Info() const override
108  {
109  return "KratosRANSApplication";
110  }
111 
113  void PrintInfo(std::ostream& rOStream) const override
114  {
115  rOStream << Info();
116  PrintData(rOStream);
117  }
118 
120  void PrintData(std::ostream& rOStream) const override
121  {
122  KRATOS_WATCH("in my application");
124 
125  rOStream << "Variables:" << std::endl;
127  rOStream << std::endl;
128  rOStream << "Elements:" << std::endl;
129  KratosComponents<Element>().PrintData(rOStream);
130  rOStream << std::endl;
131  rOStream << "Conditions:" << std::endl;
132  KratosComponents<Condition>().PrintData(rOStream);
133  }
134 
136 
137 private:
140 
142  const IncompressiblePotentialFlowVelocityElement<2, 3> mIncompressiblePotentialFlowVelocity2D;
143  const IncompressiblePotentialFlowVelocityElement<3, 4> mIncompressiblePotentialFlowVelocity3D;
144 
149 
152 
156 
159 
163 
166 
171 
174 
178 
181 
185 
188 
193 
196 
200 
203 
207 
210 
211  // vms monolithic k based wall conditions
212  const VMSMonolithicKBasedWallCondition<2> mRansVMSMonolithicKBasedWall2D2N;
213  const VMSMonolithicKBasedWallCondition<3> mRansVMSMonolithicKBasedWall3D3N;
214 
215  // fractional step wall conditions
216  const FractionalStepKBasedWallCondition<2, 2> mFractionalStepKBasedWall2D2N;
217  const FractionalStepKBasedWallCondition<3, 3> mFractionalStepKBasedWall3D3N;
218 
219  // incompressible potential flow conditions
220  const IncompressiblePotentialFlowVelocityInletCondition<2, 2> mIncompressiblePotentialFlowVelocityInlet2D2N;
221  const IncompressiblePotentialFlowVelocityInletCondition<3, 3> mIncompressiblePotentialFlowVelocityInlet3D3N;
222 
223  // k-epsilon turbulence model conditions
226 
229 
230  // k-omega turbulence model conditions
233 
236 
237  // constitutive laws
238  const RansNewtonian2DLaw mRansNewtonian2DLaw;
239  const RansNewtonian3DLaw mRansNewtonian3DLaw;
240 
244 
247 
250 
252 
253 }; // Class KratosRANSApplication
254 
256 
257 } // namespace Kratos.
258 
259 #endif // KRATOS_RANS_APPLICATION_H_INCLUDED defined
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
std::string Info() const override
Turn back information as a string.
Definition: periodic_interface_process.hpp:93
Definition: convection_diffusion_reaction_cross_wind_stabilized_element.h:38
Definition: convection_diffusion_reaction_element.h:36
Definition: convection_diffusion_reaction_residual_based_flux_corrected_element.h:39
This class defines the interface with kernel for all applications in Kratos.
Definition: kratos_application.h:91
Definition: kratos_components.h:253
virtual void PrintData(std::ostream &rOStream) const
Print object's data.
Definition: kratos_components.h:403
KratosComponents class encapsulates a lookup table for a family of classes in a generic way.
Definition: kratos_components.h:49
Short class definition.
Definition: rans_application.h:78
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: rans_application.h:120
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: rans_application.h:113
KRATOS_CLASS_POINTER_DEFINITION(KratosRANSApplication)
Pointer definition of KratosRANSApplication.
std::string Info() const override
Turn back information as a string.
Definition: rans_application.h:107
~KratosRANSApplication() override=default
Destructor.
This class is extending Newtonian2DLaw in FluidDynamicsApplication.
Definition: rans_newtonian_2d_law.h:33
This class is extending Newtonian3DLaw in FluidDynamicsApplication.
Definition: rans_newtonian_3d_law.h:33
Definition: scalar_wall_flux_condition.h:33
#define KRATOS_WATCH(variable)
Definition: define.h:806
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
KRATOS_API_EXTERN template class KratosComponents< Condition >
Definition: condition.h:1191
KRATOS_API_EXTERN template class KratosComponents< Element >
Definition: element.h:1240