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.
apply_kinematic_constraints_process.hpp
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: Miguel Angel Celigueta
11 //
12 
13 #if !defined(KRATOS_APPLY_KINEMATIC_CONSTRAINTS_PROCESS )
14 #define KRATOS_APPLY_KINEMATIC_CONSTRAINTS_PROCESS
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/table.h"
28 #include "includes/kratos_flags.h"
30 #include "processes/process.h"
34 
35 namespace Kratos
36 {
39 
42 
46 
50 
54 
58 
60 
65  class KRATOS_API(DEM_APPLICATION) ApplyKinematicConstraintsProcess: public Process
66  {
67  public:
70 
73 
76 
80 
82  ApplyKinematicConstraintsProcess(ModelPart& rModelPart, Parameters rParameters);
83 
86 
87 
91 
92 
96 
97  void Execute() override;
98 
99  void ExecuteInitializeSolutionStep() override;
100 
101  void ExecuteFinalizeSolutionStep() override;
102 
106 
107 
111 
112 
116 
118  std::string Info() const override;
119 
121  void PrintInfo(std::ostream& rOStream) const override;
122 
124  void PrintData(std::ostream& rOStream) const override;
125 
126 
130 
131 
133 
134  protected:
137 
138 
142 
143 
147 
148 
152 
156 
157 
161 
162 
166 
167 
169 
170  private:
173 
174 
178 
179  ModelPart& mrModelPart;
180  Parameters mParameters;
181  IntervalUtility mInterval;
182  array_1d<bool, 3> mVelocityIsConstrained;
183  array_1d<bool, 3> mAngularVelocityIsConstrained;
184  array_1d<bool, 3> mVelocityValueIsNumeric;
185  array_1d<bool, 3> mAngularVelocityValueIsNumeric;
186  array_1d<double, 3> mVelocityValues;
187  array_1d<double, 3> mAngularVelocityValues;
188  std::vector<GenericFunctionUtility> mVelocityFunctions;
189  std::vector<GenericFunctionUtility> mAngularVelocityFunctions;
190  array_1d<int, 3> mVelocityTableId;
191  array_1d<int, 3> mAngularVelocityTableId;
192  std::vector<TableType::Pointer> mpVelocityTable;
193  std::vector<TableType::Pointer> mpAngularVelocityTable;
194 
198 
199 
203 
204 
208 
209 
213 
214 
218 
221 
224 
225 
227 
228  }; // Class ApplyKinematicConstraintsProcess
229 
231 
234 
235 
239 
240 
242  inline std::ostream& operator << (
243  std::ostream& rOStream,
244  const ApplyKinematicConstraintsProcess& rThis);
245 
247 
249 
250 } // namespace Kratos.
251 
252 #endif // KRATOS_APPLY_KINEMATIC_CONSTRAINTS_PROCESS defined
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
void ExecuteFinalizeSolutionStep() override
this function will be executed at every time step AFTER performing the solve phase
Definition: periodic_interface_process.hpp:55
std::string Info() const override
Turn back information as a string.
Definition: periodic_interface_process.hpp:93
Auxiliary process to apply forces and moments to particles.
Definition: apply_kinematic_constraints_process.hpp:66
KRATOS_CLASS_POINTER_DEFINITION(ApplyKinematicConstraintsProcess)
Pointer definition of ApplyKinematicConstraintsProcess.
Table< double, double > TableType
Defining a table with double argument and result type as table type.
Definition: apply_kinematic_constraints_process.hpp:75
Definition: interval_utility.h:27
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
Definition: table.h:435
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