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.
acceleration_limitation_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 author: Ruben Zorrilla
11 //
12 
13 #if !defined(KRATOS_ACCELERATION_LIMITATION_UTILITIES_H_INCLUDED )
14 #define KRATOS_ACCELERATION_LIMITATION_UTILITIES_H_INCLUDED
15 
16 // System includes
17 #include <iostream>
18 
19 // External includes
20 
21 // Project includes
22 #include "includes/define.h"
23 #include "includes/model_part.h"
24 
25 namespace Kratos
26 {
29 
32 
36 
40 
44 
48 
49  class KRATOS_API(FLUID_DYNAMICS_APPLICATION) AccelerationLimitationUtilities
50  {
51  public:
52 
55 
58  typedef std::vector<IntegrationPointType> IntegrationPointsArrayType;
59 
62 
66 
68 
75  AccelerationLimitationUtilities( ModelPart &ModelPart, double multipleOfG ) : mrModelPart(ModelPart) {
76 
77  this->mMaximalAccelaration = multipleOfG;
78  };
79 
82 
86 
87 
91 
96  void Execute();
97 
98 
104  void SetLimitAsMultipleOfGravitionalAcceleration( double& newMaxAcc );
105 
106 
110 
111 
115 
116 
120 
122  std::string Info() const;
123 
125  void PrintInfo(std::ostream& rOStream) const;
126 
128  void PrintData(std::ostream& rOStream) const;
129 
133 
134 
136 
137 private:
140 
141 
145 
146  ModelPart &mrModelPart;
147  // The utilities model part saved as a reference
148 
149  double mMaximalAccelaration = 3.0;
150  // given in multipples of gravitational acceleration
151 
155 
156 
160 
161 
165 
166 
170 
171 
175 
178 
181 
183 
184 }; // Class AccelerationLimitationUtilities
185 
187 
190 
191 
195 
196 
198 inline std::ostream& operator << (
199  std::ostream& rOStream,
200  const AccelerationLimitationUtilities& rThis);
201 
203 
205 
206 } // namespace Kratos.
207 
208 #endif // KRATOS_ACCELERATION_LIMITATION_UTILITIES_H_INCLUDED defined
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Definition: acceleration_limitation_utilities.h:50
KRATOS_CLASS_POINTER_DEFINITION(AccelerationLimitationUtilities)
Pointer definition of AccelerationLimitationUtilities.
IntegrationPoint< 3 > IntegrationPointType
Definition: acceleration_limitation_utilities.h:57
std::string Info() const
Turn back information as a string.
void PrintInfo(std::ostream &rOStream) const
Print information about this object.
std::vector< IntegrationPointType > IntegrationPointsArrayType
Definition: acceleration_limitation_utilities.h:58
~AccelerationLimitationUtilities()
Destructor.
Definition: acceleration_limitation_utilities.h:81
void PrintData(std::ostream &rOStream) const
Print object's data.
AccelerationLimitationUtilities(ModelPart &ModelPart, double multipleOfG)
Constructor.
Definition: acceleration_limitation_utilities.h:75
Geometry< Node > GeometryType
Definition: acceleration_limitation_utilities.h:56
Geometry base class.
Definition: geometry.h:71
Short class definition.
Definition: integration_point.h:52
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
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