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.
calculate_divergence_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 authors: Riccardo Tosi
11 //
12 
13 #ifndef KRATOS_CALCULATE_DIVERGENCE_PROCESS_H
14 #define KRATOS_CALCULATE_DIVERGENCE_PROCESS_H
15 
16 // System includes
17 
18 // External includes
19 
20 // Project includes
21 #include "includes/model_part.h"
22 #include "processes/process.h"
23 
24 // Application includes
25 
26 namespace Kratos
27 {
30 
33 
37 
41 
45 
49 
51 
57  class KRATOS_API(EXAQUTE_SANDBOX_APPLICATION) CalculateDivergenceProcess : public Process
58  {
59  public:
62 
65 
69 
71 
77  ModelPart& rModelPart,
78  Parameters ThisParameters = Parameters(R"({})"));
79 
81  ~CalculateDivergenceProcess() override = default;
82 
85 
89 
93 
97  void ExecuteInitialize() override;
98 
102  void ExecuteBeforeOutputStep() override;
103 
107 
111 
115 
117  std::string Info() const override;
118 
120  void PrintInfo(std::ostream& rOStream) const override;
121 
123  void PrintData(std::ostream& rOStream) const override;
124 
128 
130 
131  protected:
134 
138 
142 
146 
150 
154 
158 
160 
161  private:
164 
168 
169  const ModelPart& mrModelPart;
170 
174 
178  double ComputeAuxiliaryElementDivergence(Vector& grad_x, Vector& grad_y, Vector& grad_z);
182  double ComputeAuxiliaryElementVelocitySeminorm(Vector& grad_x, Vector& grad_y, Vector& grad_z);
183 
187 
190 
192 
193  }; // Class Process
194 
196 
199 
203 
205  inline std::istream& operator >> (std::istream& rIStream,
207 
209  inline std::ostream& operator << (std::ostream& rOStream,
210  const CalculateDivergenceProcess& rThis);
211 
213 
214 } // namespace Kratos
215 
216 #endif // KRATOS_CALCULATE_DIVERGENCE_PROCESS_H
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
Process to compute divergence.
Definition: calculate_divergence_process.h:58
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
~CalculateDivergenceProcess() override=default
Destructor.
CalculateDivergenceProcess & operator=(CalculateDivergenceProcess const &rOther)=delete
Assignment operator.
KRATOS_CLASS_POINTER_DEFINITION(CalculateDivergenceProcess)
Pointer definition of Process.
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
std::istream & operator>>(std::istream &rIStream, LinearMasterSlaveConstraint &rThis)
input stream function
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432