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_to_walls_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: Joaquín Irazábal González
11 //
12 
13 #if !defined(KRATOS_APPLY_KINEMATIC_CONSTRAINTS_TO_WALLS_PROCESS )
14 #define KRATOS_APPLY_KINEMATIC_CONSTRAINTS_TO_WALLS_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 
63  class KRATOS_API(DEM_APPLICATION) ApplyKinematicConstraintsToWallsProcess: public Process
64  {
65  public:
68 
71 
74 
78 
81 
84 
85 
89 
90 
94 
95  void Execute() override;
96 
97  void ExecuteInitializeSolutionStep() override;
98 
99  void ExecuteFinalizeSolutionStep() override;
100 
104 
105 
109 
110 
114 
116  std::string Info() const override;
117 
119  void PrintInfo(std::ostream& rOStream) const override;
120 
122  void PrintData(std::ostream& rOStream) const override;
123 
124 
128 
129 
131 
132  protected:
135 
136 
140 
141 
145 
146 
150 
154 
155 
159 
160 
164 
165 
167 
168  private:
171 
172 
176 
177  ModelPart& mrModelPart;
178  Parameters mParameters;
179  IntervalUtility mInterval;
180  array_1d<bool, 3> mVelocityIsConstrained;
181  array_1d<bool, 3> mAngularVelocityIsConstrained;
182  array_1d<bool, 3> mVelocityValueIsNumeric;
183  array_1d<bool, 3> mAngularVelocityValueIsNumeric;
184  array_1d<double, 3> mVelocityValues;
185  array_1d<double, 3> mAngularVelocityValues;
186  std::vector<GenericFunctionUtility> mVelocityFunctions;
187  std::vector<GenericFunctionUtility> mAngularVelocityFunctions;
188  array_1d<int, 3> mVelocityTableId;
189  array_1d<int, 3> mAngularVelocityTableId;
190  std::vector<TableType::Pointer> mpVelocityTable;
191  std::vector<TableType::Pointer> mpAngularVelocityTable;
192 
196 
197 
201 
202 
206 
207 
211 
212 
216 
219 
222 
223 
225 
226  }; // Class ApplyKinematicConstraintsToWallsProcess
227 
229 
232 
233 
237 
238 
240  inline std::ostream& operator << (
241  std::ostream& rOStream,
243 
245 
247 
248 } // namespace Kratos.
249 
250 #endif // KRATOS_APPLY_KINEMATIC_CONSTRAINTS_TO_WALLS_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_to_walls_process.hpp:64
KRATOS_CLASS_POINTER_DEFINITION(ApplyKinematicConstraintsToWallsProcess)
Pointer definition of ApplyKinematicConstraintsToWallsProcess.
Table< double, double > TableType
Defining a table with double argument and result type as table type.
Definition: apply_kinematic_constraints_to_walls_process.hpp:73
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