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.
boussinesq_force_process.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 author: Jordi Cotela
11 //
12 
13 #if !defined(KRATOS_BOUSSINESQ_FORCE_PROCESS_H_INCLUDED )
14 #define KRATOS_BOUSSINESQ_FORCE_PROCESS_H_INCLUDED
15 
16 
17 
18 // System includes
19 #include <string>
20 #include <iostream>
21 
22 
23 // External includes
24 
25 
26 // Project includes
27 #include "includes/define.h"
29 #include "includes/model_part.h"
30 #include "processes/process.h"
31 
32 namespace Kratos
33 {
36 
39 
43 
47 
51 
55 
57 
72  class KRATOS_API(FLUID_DYNAMICS_APPLICATION) BoussinesqForceProcess: public Process
73  {
74  public:
77 
80 
84 
86  BoussinesqForceProcess(ModelPart& rModelPart, Parameters& rParameters);
87 
89  ~BoussinesqForceProcess() override;
90 
91 
95 
96 
100 
101  void Execute() override;
102 
103  void ExecuteInitialize() override;
104 
105  void ExecuteInitializeSolutionStep() override;
106 
110 
111 
115 
116 
120 
122  std::string Info() const override;
123 
125  void PrintInfo(std::ostream& rOStream) const override;
126 
128  void PrintData(std::ostream& rOStream) const override;
129 
130 
134 
135 
137 
138  protected:
141 
142 
146 
147 
151 
152 
156 
157  void ValidateModelPart();
158 
159  void AssignBoussinesqForce();
160 
164 
165 
169 
170 
174 
175 
177 
178  private:
181 
182 
186 
187  ModelPart& mrModelPart;
188 
189  array_1d<double,3> mrGravity;
190 
191  bool mUseAmbientTemperature;
192 
193  double mThermalExpansionCoefficient;
194 
198 
199 
203 
204 
208 
209 
213 
214 
218 
221 
224 
225 
227 
228  }; // Class BoussinesqForceProcess
229 
231 
234 
235 
239 
240 
242  inline std::ostream& operator << (
243  std::ostream& rOStream,
244  const BoussinesqForceProcess& rThis);
245 
247 
249 
250 } // namespace Kratos.
251 
252 #endif // KRATOS_BOUSSINESQ_FORCE_PROCESS_H_INCLUDED defined
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
void ExecuteInitialize() override
Definition: periodic_interface_process.hpp:37
std::string Info() const override
Turn back information as a string.
Definition: periodic_interface_process.hpp:93
Auxiliary process to set Boussinesq buoyancy forces in variable temperature flows.
Definition: boussinesq_force_process.h:73
KRATOS_CLASS_POINTER_DEFINITION(BoussinesqForceProcess)
Pointer definition of BoussinesqForceProcess.
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
This class provides to Kratos a data structure for I/O based on the standard of JSON.
Definition: kratos_parameters.h:59
The base class for all processes in Kratos.
Definition: process.h:49
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432