14 #if !defined(KRATOS_APPLY_RIGID_ROTATION_PROCESS )
15 #define KRATOS_APPLY_RIGID_ROTATION_PROCESS
48 "model_part_name":"PLEASE_CHOOSE_MODEL_PART_NAME",
49 "angular_velocity": 0.0,
50 "rotation_axis_initial_point": [0.0,0.0,0.0],
51 "rotation_axis_final_point": [0.0,0.0,1.0],
57 rParameters[
"model_part_name"];
91 const double axis_norm =
norm_2(rotation_axis);
92 if (axis_norm > 1.0e-15){
93 rotation_axis[0] *= 1.0/axis_norm;
94 rotation_axis[1] *= 1.0/axis_norm;
95 rotation_axis[2] *= 1.0/axis_norm;
103 for (
int i = 0;
i < 3; ++
i) {
104 for (
int j = 0;
j < 3; ++
j) {
134 this->CalculateRodriguesMatrices(current_time);
138 #pragma omp parallel for
141 ModelPart::NodesContainerType::iterator it = it_begin +
i;
165 std::string
Info()
const override
167 return "ApplyRigidRotationProcess";
173 rOStream <<
"ApplyRigidRotationProcess";
204 void CalculateRodriguesMatrices(
const double current_time)
238 rOStream << std::endl;
Process used to rotate eulerian model parts using Rodrigues' rotation formula.
Definition: apply_rigid_rotation_process.hpp:30
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: apply_rigid_rotation_process.hpp:171
ModelPart & mr_model_part
Member Variables.
Definition: apply_rigid_rotation_process.hpp:187
ApplyRigidRotationProcess(ModelPart &model_part, Parameters &rParameters)
Constructor.
Definition: apply_rigid_rotation_process.hpp:39
void ExecuteInitialize() override
Definition: apply_rigid_rotation_process.hpp:84
KRATOS_CLASS_POINTER_DEFINITION(ApplyRigidRotationProcess)
BoundedMatrix< double, 3, 3 > midentity_matrix
Definition: apply_rigid_rotation_process.hpp:193
BoundedMatrix< double, 3, 3 > mantisym_axis_matrix
Definition: apply_rigid_rotation_process.hpp:195
array_1d< double, 3 > maxis_initial_point
Definition: apply_rigid_rotation_process.hpp:191
double minitial_time
Definition: apply_rigid_rotation_process.hpp:190
array_1d< double, 3 > maxis_final_point
Definition: apply_rigid_rotation_process.hpp:192
double mangular_velocity
Definition: apply_rigid_rotation_process.hpp:189
BoundedMatrix< double, 3, 3 > mrotation_matrix
Definition: apply_rigid_rotation_process.hpp:196
BoundedMatrix< double, 3, 3 > maxis_matrix
Definition: apply_rigid_rotation_process.hpp:194
void Execute() override
Execute method is used to execute the ApplyComponentTableProcess algorithms.
Definition: apply_rigid_rotation_process.hpp:78
std::string Info() const override
Turn back information as a string.
Definition: apply_rigid_rotation_process.hpp:165
void ExecuteInitializeSolutionStep() override
this function will be executed at every time step BEFORE performing the solve phase
Definition: apply_rigid_rotation_process.hpp:121
~ApplyRigidRotationProcess() override
Destructor.
Definition: apply_rigid_rotation_process.hpp:73
BoundedMatrix< double, 3, 3 > mrotation_dt_matrix
Definition: apply_rigid_rotation_process.hpp:197
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: apply_rigid_rotation_process.hpp:177
Definition: amatrix_interface.h:41
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
NodeIterator NodesBegin(IndexType ThisIndex=0)
Definition: model_part.h:487
ProcessInfo & GetProcessInfo()
Definition: model_part.h:1746
NodesContainerType & Nodes(IndexType ThisIndex=0)
Definition: model_part.h:507
This class provides to Kratos a data structure for I/O based on the standard of JSON.
Definition: kratos_parameters.h:59
double GetDouble() const
This method returns the double contained in the current Parameter.
Definition: kratos_parameters.cpp:657
Vector GetVector() const
This method returns the vector contained in the current Parameter.
Definition: kratos_parameters.cpp:707
void ValidateAndAssignDefaults(const Parameters &rDefaultParameters)
This function is designed to verify that the parameters under testing match the form prescribed by th...
Definition: kratos_parameters.cpp:1306
The base class for all processes in Kratos.
Definition: process.h:49
#define KRATOS_CATCH(MoreInfo)
Definition: define.h:110
#define KRATOS_TRY
Definition: define.h:109
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
TExpressionType::data_type norm_2(AMatrix::MatrixExpression< TExpressionType, TCategory > const &TheExpression)
Definition: amatrix_interface.h:625
KratosZeroMatrix< double > ZeroMatrix
Definition: amatrix_interface.h:559
AMatrix::MatrixProductExpression< TExpression1Type, TExpression2Type > prod(AMatrix::MatrixExpression< TExpression1Type, TCategory1 > const &First, AMatrix::MatrixExpression< TExpression2Type, TCategory2 > const &Second)
Definition: amatrix_interface.h:568
std::istream & operator>>(std::istream &rIStream, LinearMasterSlaveConstraint &rThis)
input stream function
T & noalias(T &TheMatrix)
Definition: amatrix_interface.h:484
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432
model_part
Definition: face_heat.py:14
delta_time
Definition: generate_frictional_mortar_condition.py:130
int j
Definition: quadrature.py:648
int nnodes
Definition: sensitivityMatrix.py:24
integer i
Definition: TensorModule.f:17