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.
Public Types | Public Member Functions | List of all members
Kratos::RungeKuttaScheme Class Reference

#include <runge_kutta_scheme.h>

Inheritance diagram for Kratos::RungeKuttaScheme:
Collaboration diagram for Kratos::RungeKuttaScheme:

Public Types

typedef ModelPart::NodesContainerType NodesArrayType
 
- Public Types inherited from Kratos::DEMIntegrationScheme
typedef ModelPart::NodesContainerType NodesArrayType
 

Public Member Functions

 KRATOS_CLASS_POINTER_DEFINITION (RungeKuttaScheme)
 Pointer definition of RungeKuttaScheme. More...
 
 RungeKuttaScheme ()
 Default constructor. More...
 
virtual ~RungeKuttaScheme ()
 Destructor. More...
 
DEMIntegrationSchemeCloneRaw () const override
 
DEMIntegrationScheme::Pointer CloneShared () const override
 
void SetTranslationalIntegrationSchemeInProperties (Properties::Pointer pProp, bool verbose=true) const override
 
void SetRotationalIntegrationSchemeInProperties (Properties::Pointer pProp, bool verbose=true) const override
 
void UpdateTranslationalVariables (int StepFlag, Node &i, array_1d< double, 3 > &coor, array_1d< double, 3 > &displ, array_1d< double, 3 > &delta_displ, array_1d< double, 3 > &vel, const array_1d< double, 3 > &initial_coor, const array_1d< double, 3 > &force, const double force_reduction_factor, const double mass, const double delta_t, const bool Fix_vel[3]) override
 
void CalculateNewRotationalVariablesOfSpheres (int StepFlag, Node &i, const double moment_of_inertia, array_1d< double, 3 > &angular_velocity, array_1d< double, 3 > &torque, const double moment_reduction_factor, array_1d< double, 3 > &rotated_angle, array_1d< double, 3 > &delta_rotation, const double delta_t, const bool Fix_Ang_vel[3]) override
 
void CalculateNewRotationalVariablesOfRigidBodyElements (int StepFlag, Node &i, const array_1d< double, 3 > moments_of_inertia, array_1d< double, 3 > &angular_velocity, array_1d< double, 3 > &torque, const double moment_reduction_factor, array_1d< double, 3 > &rotated_angle, array_1d< double, 3 > &delta_rotation, Quaternion< double > &Orientation, const double delta_t, const bool Fix_Ang_vel[3]) override
 
virtual void UpdateRotationalVariables (int StepFlag, Node &i, const double &moment_of_inertia, array_1d< double, 3 > &rotated_angle, array_1d< double, 3 > &delta_rotation, Quaternion< double > &Orientation, const array_1d< double, 3 > &angular_momentum, array_1d< double, 3 > &angular_velocity, const double delta_t, const bool Fix_Ang_vel[3]) override
 
void UpdateRotationalVariables (int StepFlag, Node &i, const array_1d< double, 3 > &moments_of_inertia, array_1d< double, 3 > &rotated_angle, array_1d< double, 3 > &delta_rotation, Quaternion< double > &Orientation, const array_1d< double, 3 > &angular_momentum, array_1d< double, 3 > &angular_velocity, const double delta_t, const bool Fix_Ang_vel[3]) override
 
void UpdateAngularVelocity (const Quaternion< double > &Orientation, const double LocalTensorInv[3][3], const array_1d< double, 3 > &angular_momentum, array_1d< double, 3 > &angular_velocity) override
 
void CalculateLocalAngularAcceleration (const double moment_of_inertia, const array_1d< double, 3 > &torque, const double moment_reduction_factor, array_1d< double, 3 > &angular_acceleration) override
 
void CalculateLocalAngularAccelerationByEulerEquations (const array_1d< double, 3 > &local_angular_velocity, const array_1d< double, 3 > &moments_of_inertia, const array_1d< double, 3 > &local_torque, const double moment_reduction_factor, array_1d< double, 3 > &local_angular_acceleration) override
 
void CalculateAngularVelocityRK (const Quaternion< double > &Orientation, const double &moment_of_inertia, const array_1d< double, 3 > &angular_momentum, array_1d< double, 3 > &angular_velocity, const double delta_t, const bool Fix_Ang_vel[3]) override
 
void CalculateAngularVelocityRK (const Quaternion< double > &Orientation, const array_1d< double, 3 > &moments_of_inertia, const array_1d< double, 3 > &angular_momentum, array_1d< double, 3 > &angular_velocity, const double delta_t, const bool Fix_Ang_vel[3]) override
 
void QuaternionCalculateMidAngularVelocities (const Quaternion< double > &Orientation, const double LocalTensorInv[3][3], const array_1d< double, 3 > &angular_momentum, const double dt, const array_1d< double, 3 > &InitialAngularVel, array_1d< double, 3 > &FinalAngularVel) override
 
virtual std::string Info () const override
 Turn back information as a string. More...
 
virtual void PrintInfo (std::ostream &rOStream) const override
 Print information about this object. More...
 
virtual void PrintData (std::ostream &rOStream) const override
 Print object's data. More...
 
- Public Member Functions inherited from Kratos::DEMIntegrationScheme
 KRATOS_CLASS_POINTER_DEFINITION (DEMIntegrationScheme)
 
 DEMIntegrationScheme ()
 
virtual ~DEMIntegrationScheme ()
 
virtual void Move (Node &i, const double delta_t, const double force_reduction_factor, const int StepFlag)
 
virtual void Rotate (Node &i, const double delta_t, const double force_reduction_factor, const int StepFlag)
 
virtual void MoveRigidBodyElement (RigidBodyElement3D *rigid_body_element, Node &i, const double delta_t, const double force_reduction_factor, const int StepFlag)
 
virtual void RotateRigidBodyElement (RigidBodyElement3D *rigid_body_element, Node &i, const double delta_t, const double force_reduction_factor, const int StepFlag)
 
virtual void CalculateTranslationalMotionOfNode (Node &i, const double delta_t, const double force_reduction_factor, const int StepFlag)
 
virtual void CalculateRotationalMotionOfSphereNode (Node &i, const double delta_t, const double force_reduction_factor, const int StepFlag)
 
virtual void CalculateRotationalMotionOfRigidBodyElementNode (Node &i, const double delta_t, const double moment_reduction_factor, const int StepFlag)
 
virtual void UpdateRotationalVariables (int StepFlag, Node &i, array_1d< double, 3 > &rotated_angle, array_1d< double, 3 > &delta_rotation, array_1d< double, 3 > &angular_velocity, array_1d< double, 3 > &angular_acceleration, const double delta_t, const bool Fix_Ang_vel[3])
 
virtual void UpdateRotatedAngle (array_1d< double, 3 > &rotated_angle, array_1d< double, 3 > &delta_rotation, const array_1d< double, 3 > &angular_velocity, const double delta_t)
 

Member Typedef Documentation

◆ NodesArrayType

Constructor & Destructor Documentation

◆ RungeKuttaScheme()

Kratos::RungeKuttaScheme::RungeKuttaScheme ( )
inline

Default constructor.

◆ ~RungeKuttaScheme()

virtual Kratos::RungeKuttaScheme::~RungeKuttaScheme ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ CalculateAngularVelocityRK() [1/2]

void Kratos::RungeKuttaScheme::CalculateAngularVelocityRK ( const Quaternion< double > &  Orientation,
const array_1d< double, 3 > &  moments_of_inertia,
const array_1d< double, 3 > &  angular_momentum,
array_1d< double, 3 > &  angular_velocity,
const double  delta_t,
const bool  Fix_Ang_vel[3] 
)
overridevirtual

Reimplemented from Kratos::DEMIntegrationScheme.

◆ CalculateAngularVelocityRK() [2/2]

void Kratos::RungeKuttaScheme::CalculateAngularVelocityRK ( const Quaternion< double > &  Orientation,
const double moment_of_inertia,
const array_1d< double, 3 > &  angular_momentum,
array_1d< double, 3 > &  angular_velocity,
const double  delta_t,
const bool  Fix_Ang_vel[3] 
)
overridevirtual

Reimplemented from Kratos::DEMIntegrationScheme.

◆ CalculateLocalAngularAcceleration()

void Kratos::RungeKuttaScheme::CalculateLocalAngularAcceleration ( const double  moment_of_inertia,
const array_1d< double, 3 > &  torque,
const double  moment_reduction_factor,
array_1d< double, 3 > &  angular_acceleration 
)
overridevirtual

Reimplemented from Kratos::DEMIntegrationScheme.

◆ CalculateLocalAngularAccelerationByEulerEquations()

void Kratos::RungeKuttaScheme::CalculateLocalAngularAccelerationByEulerEquations ( const array_1d< double, 3 > &  local_angular_velocity,
const array_1d< double, 3 > &  moments_of_inertia,
const array_1d< double, 3 > &  local_torque,
const double  moment_reduction_factor,
array_1d< double, 3 > &  local_angular_acceleration 
)
overridevirtual

Reimplemented from Kratos::DEMIntegrationScheme.

◆ CalculateNewRotationalVariablesOfRigidBodyElements()

void Kratos::RungeKuttaScheme::CalculateNewRotationalVariablesOfRigidBodyElements ( int  StepFlag,
Node i,
const array_1d< double, 3 >  moments_of_inertia,
array_1d< double, 3 > &  angular_velocity,
array_1d< double, 3 > &  torque,
const double  moment_reduction_factor,
array_1d< double, 3 > &  rotated_angle,
array_1d< double, 3 > &  delta_rotation,
Quaternion< double > &  Orientation,
const double  delta_t,
const bool  Fix_Ang_vel[3] 
)
overridevirtual

Reimplemented from Kratos::DEMIntegrationScheme.

◆ CalculateNewRotationalVariablesOfSpheres()

void Kratos::RungeKuttaScheme::CalculateNewRotationalVariablesOfSpheres ( int  StepFlag,
Node i,
const double  moment_of_inertia,
array_1d< double, 3 > &  angular_velocity,
array_1d< double, 3 > &  torque,
const double  moment_reduction_factor,
array_1d< double, 3 > &  rotated_angle,
array_1d< double, 3 > &  delta_rotation,
const double  delta_t,
const bool  Fix_Ang_vel[3] 
)
overridevirtual

Reimplemented from Kratos::DEMIntegrationScheme.

◆ CloneRaw()

DEMIntegrationScheme* Kratos::RungeKuttaScheme::CloneRaw ( ) const
inlineoverridevirtual

Reimplemented from Kratos::DEMIntegrationScheme.

◆ CloneShared()

DEMIntegrationScheme::Pointer Kratos::RungeKuttaScheme::CloneShared ( ) const
inlineoverridevirtual

Reimplemented from Kratos::DEMIntegrationScheme.

◆ Info()

virtual std::string Kratos::RungeKuttaScheme::Info ( ) const
inlineoverridevirtual

Turn back information as a string.

Reimplemented from Kratos::DEMIntegrationScheme.

◆ KRATOS_CLASS_POINTER_DEFINITION()

Kratos::RungeKuttaScheme::KRATOS_CLASS_POINTER_DEFINITION ( RungeKuttaScheme  )

Pointer definition of RungeKuttaScheme.

◆ PrintData()

virtual void Kratos::RungeKuttaScheme::PrintData ( std::ostream &  rOStream) const
inlineoverridevirtual

Print object's data.

Reimplemented from Kratos::DEMIntegrationScheme.

◆ PrintInfo()

virtual void Kratos::RungeKuttaScheme::PrintInfo ( std::ostream &  rOStream) const
inlineoverridevirtual

Print information about this object.

Reimplemented from Kratos::DEMIntegrationScheme.

◆ QuaternionCalculateMidAngularVelocities()

void Kratos::RungeKuttaScheme::QuaternionCalculateMidAngularVelocities ( const Quaternion< double > &  Orientation,
const double  LocalTensorInv[3][3],
const array_1d< double, 3 > &  angular_momentum,
const double  dt,
const array_1d< double, 3 > &  InitialAngularVel,
array_1d< double, 3 > &  FinalAngularVel 
)
overridevirtual

Reimplemented from Kratos::DEMIntegrationScheme.

◆ SetRotationalIntegrationSchemeInProperties()

void Kratos::RungeKuttaScheme::SetRotationalIntegrationSchemeInProperties ( Properties::Pointer  pProp,
bool  verbose = true 
) const
overridevirtual

Reimplemented from Kratos::DEMIntegrationScheme.

◆ SetTranslationalIntegrationSchemeInProperties()

void Kratos::RungeKuttaScheme::SetTranslationalIntegrationSchemeInProperties ( Properties::Pointer  pProp,
bool  verbose = true 
) const
overridevirtual

Reimplemented from Kratos::DEMIntegrationScheme.

◆ UpdateAngularVelocity()

void Kratos::RungeKuttaScheme::UpdateAngularVelocity ( const Quaternion< double > &  Orientation,
const double  LocalTensorInv[3][3],
const array_1d< double, 3 > &  angular_momentum,
array_1d< double, 3 > &  angular_velocity 
)
overridevirtual

Reimplemented from Kratos::DEMIntegrationScheme.

◆ UpdateRotationalVariables() [1/2]

void Kratos::RungeKuttaScheme::UpdateRotationalVariables ( int  StepFlag,
Node i,
const array_1d< double, 3 > &  moments_of_inertia,
array_1d< double, 3 > &  rotated_angle,
array_1d< double, 3 > &  delta_rotation,
Quaternion< double > &  Orientation,
const array_1d< double, 3 > &  angular_momentum,
array_1d< double, 3 > &  angular_velocity,
const double  delta_t,
const bool  Fix_Ang_vel[3] 
)
overridevirtual

Reimplemented from Kratos::DEMIntegrationScheme.

◆ UpdateRotationalVariables() [2/2]

void Kratos::RungeKuttaScheme::UpdateRotationalVariables ( int  StepFlag,
Node i,
const double moment_of_inertia,
array_1d< double, 3 > &  rotated_angle,
array_1d< double, 3 > &  delta_rotation,
Quaternion< double > &  Orientation,
const array_1d< double, 3 > &  angular_momentum,
array_1d< double, 3 > &  angular_velocity,
const double  delta_t,
const bool  Fix_Ang_vel[3] 
)
overridevirtual

Reimplemented from Kratos::DEMIntegrationScheme.

◆ UpdateTranslationalVariables()

void Kratos::RungeKuttaScheme::UpdateTranslationalVariables ( int  StepFlag,
Node i,
array_1d< double, 3 > &  coor,
array_1d< double, 3 > &  displ,
array_1d< double, 3 > &  delta_displ,
array_1d< double, 3 > &  vel,
const array_1d< double, 3 > &  initial_coor,
const array_1d< double, 3 > &  force,
const double  force_reduction_factor,
const double  mass,
const double  delta_t,
const bool  Fix_vel[3] 
)
overridevirtual

Reimplemented from Kratos::DEMIntegrationScheme.


The documentation for this class was generated from the following files: