NetDEM v1.0
Loading...
Searching...
No Matches
model_hertz_mindlin.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "contact_model.hpp"
4
5namespace netdem {
6
21class HertzMindlin : public ContactModel {
22public:
24 double E_eq{2.0e7};
25
27 double kt{1.0e6};
28
30 double beta{0.7};
31
33 double mu{0.5};
34
38
51 HertzMindlin(double E_eq, double kt, double mu, double beta);
52
62 nlohmann::json PackJson() override;
63
74 void InitFromJson(nlohmann::json const &js) override;
75
86 void SetProperty(nlohmann::json const &js) override;
87
98 void SetProperty(std::string const &name, double value) override;
99
109 ContactModel *Clone() const override;
110
128 void EvaluateForces(ContactForces *const cnt_forces,
129 CollisionGeometries &cnt_geoms, ContactPP *const cnt,
130 double dt) const override;
131
149 void EvaluateForces(ContactForces *const cnt_forces,
150 CollisionGeometries &cnt_geoms, ContactPW *const cnt,
151 double dt) const override;
152
160 void Print() const override;
161};
162
163} // namespace netdem
A class representing the geometries associated with a collision.
Definition collision_geometries.hpp:15
A class representing the contact forces and moments arising from a contact interaction.
Definition contact_forces.hpp:18
An abstract base class for contact models.
Definition contact_model.hpp:25
A class representing a contact between two particles.
Definition contact_pp.hpp:20
A class representing a contact between a particle and a wall.
Definition contact_pw.hpp:22
A contact model based on the Hertz-Mindlin theory of elastic-plastic contact.
Definition model_hertz_mindlin.hpp:21
nlohmann::json PackJson() override
Pack object data into a JSON object for serialization.
Definition model_hertz_mindlin.cpp:23
void Print() const override
Print information about the current state of the object to the console.
Definition model_hertz_mindlin.cpp:142
double kt
Definition model_hertz_mindlin.hpp:27
double mu
Definition model_hertz_mindlin.hpp:33
double beta
Definition model_hertz_mindlin.hpp:30
void EvaluateForces(ContactForces *const cnt_forces, CollisionGeometries &cnt_geoms, ContactPP *const cnt, double dt) const override
Compute the force and moment on a particle-particle contact point.
Definition model_hertz_mindlin.cpp:87
void SetProperty(std::string const &name, double value) override
Set a named property of the object to a given value.
double E_eq
Definition model_hertz_mindlin.hpp:24
HertzMindlin()
Definition model_hertz_mindlin.cpp:12
void InitFromJson(nlohmann::json const &js) override
Initialize object data from a JSON object.
Definition model_hertz_mindlin.cpp:34
void SetProperty(nlohmann::json const &js) override
Set a property of the object from a JSON object.
Definition model_hertz_mindlin.cpp:52
ContactModel * Clone() const override
Create a deep copy of the object.
Definition model_hertz_mindlin.cpp:85
Definition bond_entry.hpp:7