NetDEM v1.0
Loading...
Searching...
No Matches
model_parallel_bond.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "contact_model.hpp"
4#include "utils_math.hpp"
5
6namespace netdem {
7
8class ContactPP;
9class ContactPW;
10
15class ParallelBond : public ContactModel {
16public:
18 double kn{2e6}, kt{1e6};
19
21 double max_sig_n{1.0e6}, max_sig_t{1.0e6};
22
23 // dash-pot damping
24 double beta{0.0};
25
30
40 ParallelBond(double kn, double kt, double sig_n, double sig_t, double beta);
41
46 nlohmann::json PackJson() override;
47
52 void InitFromJson(nlohmann::json const &js) override;
53
58 void SetProperty(nlohmann::json const &js) override;
59
64 ContactModel *Clone() const override;
65
70 void SetRadius(double r);
71
81 void EvaluateForces(ContactForces *const cnt_forces,
82 BondGeometries &cnt_geoms, ContactPP *const cnt,
83 double dt) const override;
84
94 void EvaluateForces(ContactForces *const cnt_forces,
95 BondGeometries &cnt_geoms, ContactPW *const cnt,
96 double dt) const override;
97
101 void Print() const override;
102};
103
104} // namespace netdem
The BondGeometries class represents the geometrical properties of a bond.
Definition bond_geometries.hpp:11
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
Contact model that evaluates forces and moments between two particles using parallel bond models.
Definition model_parallel_bond.hpp:15
ParallelBond()
Default constructor for ParallelBond.
Definition model_parallel_bond.cpp:12
nlohmann::json PackJson() override
Packs the contact model properties into a JSON object.
Definition model_parallel_bond.cpp:24
double kt
Maximum stress parameters used to calculate the maximum allowable force.
Definition model_parallel_bond.hpp:18
ContactModel * Clone() const override
Creates a copy of this contact model.
Definition model_parallel_bond.cpp:94
void InitFromJson(nlohmann::json const &js) override
Initializes the contact model from a JSON object.
Definition model_parallel_bond.cpp:38
void EvaluateForces(ContactForces *const cnt_forces, BondGeometries &cnt_geoms, ContactPP *const cnt, double dt) const override
Evaluates the forces and moments between two particles using parallel bond models.
Definition model_parallel_bond.cpp:96
void SetRadius(double r)
Sets the radius for the bond geometries used by this contact model.
double beta
Definition model_parallel_bond.hpp:24
double kn
< Stiffness parameters used to calculate contact forces.
Definition model_parallel_bond.hpp:18
void Print() const override
Prints the contact model properties.
Definition model_parallel_bond.cpp:237
double max_sig_n
Definition model_parallel_bond.hpp:21
double max_sig_t
Definition model_parallel_bond.hpp:21
void SetProperty(nlohmann::json const &js) override
Sets the contact model properties.
Definition model_parallel_bond.cpp:72
Definition bond_entry.hpp:7