15 #ifndef ROTATE_REGION_PROCESS_H
16 #define ROTATE_REGION_PROCESS_H
65 void SetAngularVelocity(
const double NewAngularVelocity);
67 void ExecuteInitializeSolutionStep()
override;
69 std::string
Info()
const override;
72 void PrintInfo(std::ostream &rOStream)
const override;
75 void PrintData(std::ostream& rOStream)
const override;
104 class RotationSystem {
113 RotationSystem(
const double MomentOfInertia,
114 const double DampingCoefficient = 0.0);
120 void CloneTimeStep(
const double NewTime,
const double Dt);
126 void inline ApplyTorque(
const double Torque);
131 double CalculateCurrentRotationState();
136 double GetCurrentTheta()
const;
142 double GetCurrentOmega()
const;
146 double mMomentOfInertia;
147 double mDampingCoeff;
158 double CalculateInertiaTorque()
const;
164 double CalculateDampingTorque()
const;
170 double ComputeLHS()
const;
175 double ComputeRHS()
const;
187 void Update(
double UpdateTheta);
192 double mAngularVelocityRadians;
197 bool mToCalculateTorque;
198 RotationSystem::Pointer mpRotationSystem;
212 void CalculateCurrentRotationState();
221 void CalculateLinearVelocity(
const DenseVector<double> &rAxisOfRotationVector,
222 const DenseVector<double> &rRadius,
223 DenseVector<double> &rLinearVelocity);
231 void TransformNode(
const array_1d<double, 3> &rCoordinates,
232 array_1d<double, 3> &rTransformedCoordinates,
238 double CalculateTorque()
const;
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
std::string Info() const override
Turn back information as a string.
Definition: periodic_interface_process.hpp:93
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
MeshType::NodeIterator NodeIterator
Definition: model_part.h:134
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
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
This is the to apply rotation to a given modelpart.
Definition: rotate_region_process.h:48
ModelPart::NodeIterator NodeIteratorType
Definition: rotate_region_process.h:53
KRATOS_CLASS_POINTER_DEFINITION(RotateRegionProcess)
Pointer definition of MoveRotorProcess.
Matrix MatrixType
Definition: rotate_region_process.h:56
ProcessInfo ProcessInfoType
Definition: rotate_region_process.h:54
ProcessInfo::Pointer ProcessInfoPointerType
Definition: rotate_region_process.h:55
~RotateRegionProcess()=default
Destructor.
Vector VectorType
Definition: rotate_region_process.h:57
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
Dt
Definition: face_heat.py:78
#define KRATOS_CLASS_POINTER_DEFINITION(a)
Definition: smart_pointers.h:69