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.
DEM_rolling_friction_model_viscous_torque.h
Go to the documentation of this file.
1 // Kratos Multi-Physics - DEM Application
2 //
3 // License: BSD License
4 // Kratos default license: kratos/license.txt
5 //
6 // Main authors: Rafael Rangel (rrangel@cimne.upc.edu)
7 //
8 
9 #if !defined(DEM_ROLLING_FRICTION_MODEL_VISCOUS_TORQUE_H_INCLUDED)
10 #define DEM_ROLLING_FRICTION_MODEL_VISCOUS_TORQUE_H_INCLUDED
11 
12 /* Project includes */
13 #include "../custom_elements/spheric_particle.h"
16 
17 namespace Kratos
18 {
19  class KRATOS_API(DEM_APPLICATION) DEMRollingFrictionModelViscousTorque : public DEMRollingFrictionModel
20  {
21  public:
22  // Pointer definition
24 
25  // Clone
26  DEMRollingFrictionModel::Pointer Clone() const override;
27  std::unique_ptr<DEMRollingFrictionModel> CloneUnique() override;
28 
29  // Constructor / Destructor
32 
33  // Public methods
34  void Check(Properties::Pointer pProp) const override;
35  void ComputeRollingFriction(SphericParticle* p_element, SphericParticle* p_neighbor, const ProcessInfo& r_process_info, double LocalContactForce[3], double indentation, array_1d<double, 3>& mContactMoment) override;
36  void ComputeRollingFrictionWithWall(SphericParticle* p_element, Condition* const wall, const ProcessInfo& r_process_info, double LocalContactForce[3], double indentation, array_1d<double, 3>& mContactMoment) override;
37  void CalculateInelasticRollingResistanceEnergy(double& inelastic_rollingresistance_energy, const array_1d<double, 3>& rolling_friction_moment, const array_1d<double, 3>& relative_angular_velocity, double dt) override;
38  void CalculateInelasticRollingResistanceEnergyWithWall(double& inelastic_rollingresistance_energy, const array_1d<double, 3>& rolling_friction_moment, const array_1d<double, 3>& relative_angular_velocity, double dt) override;
39 
40  private:
41  friend class Serializer;
42  void save(Serializer & rSerializer) const override {}
43  void load(Serializer & rSerializer) override {}
44  };
45 } /* namespace Kratos */
46 
47 #endif /* DEM_ROLLING_FRICTION_MODEL_VISCOUS_TORQUE_H_INCLUDED defined */
Base class for all Conditions.
Definition: condition.h:59
Definition: DEM_rolling_friction_model.h:32
Definition: DEM_rolling_friction_model_viscous_torque.h:20
KRATOS_CLASS_POINTER_DEFINITION(DEMRollingFrictionModelViscousTorque)
~DEMRollingFrictionModelViscousTorque()
Definition: DEM_rolling_friction_model_viscous_torque.h:31
DEMRollingFrictionModelViscousTorque()
Definition: DEM_rolling_friction_model_viscous_torque.h:30
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
Definition: spheric_particle.h:31
dt
Definition: DEM_benchmarks.py:173
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def load(f)
Definition: ode_solve.py:307