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_constant_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: Chengshun Shang (cshang@cimne.upc.edu)
7 //
8 
9 #if !defined(DEM_ROLLING_FRICTION_MODEL_CONSTANT_TORQUE_H_INCLUDED)
10 #define DEM_ROLLING_FRICTION_MODEL_CONSTANT_TORQUE_H_INCLUDED
11 
12 /* Project includes */
13 #include "../custom_elements/spheric_particle.h"
15 
16 
17 namespace Kratos{
18 
19  class KRATOS_API(DEM_APPLICATION) DEMRollingFrictionModelConstantTorque : public DEMRollingFrictionModel{
20  public:
21 
23 
25 
26  void Check(Properties::Pointer pProp) const override;
27 
29 
30  DEMRollingFrictionModel::Pointer Clone() const override;
31 
32  std::unique_ptr<DEMRollingFrictionModel> CloneUnique() override;
33 
34  void ComputeRollingFriction(SphericParticle* p_element, SphericParticle* p_neighbor, const ProcessInfo& r_process_info, double LocalContactForce[3], double indentation, array_1d<double, 3>& mContactMoment) override;
35 
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 
38  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;
39 
40  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;
41 
42  private:
43 
44  friend class Serializer;
45 
46  void save(Serializer& rSerializer) const override {
47  //rSerializer.save("MyMemberName",myMember);
48  }
49 
50  void load(Serializer& rSerializer) override {
51  //rSerializer.load("MyMemberName",myMember);
52  }
53 
54  };
55 
56 
57 } /* namespace Kratos.*/
58 
59 #endif /*DEM_ROLLING_FRICTION_MODEL_CONSTANT_TORQUE_H_INCLUDED defined*/
Base class for all Conditions.
Definition: condition.h:59
Definition: DEM_rolling_friction_model_constant_torque.h:19
KRATOS_CLASS_POINTER_DEFINITION(DEMRollingFrictionModelConstantTorque)
~DEMRollingFrictionModelConstantTorque()
Definition: DEM_rolling_friction_model_constant_torque.h:28
DEMRollingFrictionModelConstantTorque()
Definition: DEM_rolling_friction_model_constant_torque.h:24
Definition: DEM_rolling_friction_model.h:32
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