NetDEM v1.0
Loading...
Searching...
No Matches
netdem::ParallelBond Class Reference

Contact model that evaluates forces and moments between two particles using parallel bond models. More...

#include <model_parallel_bond.hpp>

Inheritance diagram for netdem::ParallelBond:
netdem::ContactModel

Public Member Functions

 ParallelBond ()
 Default constructor for ParallelBond.
 
 ParallelBond (double kn, double kt, double sig_n, double sig_t, double beta)
 Constructor for ParallelBond.
 
nlohmann::json PackJson () override
 Packs the contact model properties into a JSON object.
 
void InitFromJson (nlohmann::json const &js) override
 Initializes the contact model from a JSON object.
 
void SetProperty (nlohmann::json const &js) override
 Sets the contact model properties.
 
ContactModelClone () const override
 Creates a copy of this contact model.
 
void SetRadius (double r)
 Sets the radius for the bond geometries used by this contact model.
 
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.
 
void EvaluateForces (ContactForces *const cnt_forces, BondGeometries &cnt_geoms, ContactPW *const cnt, double dt) const override
 Evaluates the forces and moments between a particle and a wall using parallel bond models.
 
void Print () const override
 Prints the contact model properties.
 
- Public Member Functions inherited from netdem::ContactModel
virtual void SetProperty (std::string const &name, double value)
 Set a property of this contact model by name and value.
 
virtual void EvaluateForces (ContactForces *const cnt_forces, CollisionGeometries &cnt_geoms, ContactPP *const cnt, double dt) const
 Calculate the contact forces and moments due to this model.
 
virtual void EvaluateForces (ContactForces *const cnt_forces, CollisionGeometries &cnt_geoms, ContactPW *const cnt, double dt) const
 Calculate the contact forces and moments due to this model.
 
virtual ~ContactModel ()
 

Public Attributes

double kn {2e6}
 < Stiffness parameters used to calculate contact forces.
 
double kt {1e6}
 Maximum stress parameters used to calculate the maximum allowable force.
 
double max_sig_n {1.0e6}
 
double max_sig_t {1.0e6}
 
double beta {0.0}
 
- Public Attributes inherited from netdem::ContactModel
int id {0}
 
std::string label {"default"}
 
int model_type {0}
 
std::string model_name {"contact_model"}
 

Additional Inherited Members

- Public Types inherited from netdem::ContactModel
enum  Type {
  none , linear_spring , hertz_mindlin , volume_based ,
  parallel_bond
}
 

Detailed Description

Contact model that evaluates forces and moments between two particles using parallel bond models.

Constructor & Destructor Documentation

◆ ParallelBond() [1/2]

netdem::ParallelBond::ParallelBond ( )

Default constructor for ParallelBond.

◆ ParallelBond() [2/2]

netdem::ParallelBond::ParallelBond ( double kn,
double kt,
double sig_n,
double sig_t,
double beta )

Constructor for ParallelBond.

Parameters
knNormal stiffness parameter used to calculate contact forces.
ktTangential stiffness parameter used to calculate contact forces.
sig_nMaximum normal stress used to calculate the maximum allowable force.
sig_tMaximum tangential stress used to calculate the maximum allowable force.

Member Function Documentation

◆ Clone()

ContactModel * netdem::ParallelBond::Clone ( ) const
overridevirtual

Creates a copy of this contact model.

Returns
A new instance of the contact model.

Reimplemented from netdem::ContactModel.

◆ EvaluateForces() [1/2]

void netdem::ParallelBond::EvaluateForces ( ContactForces *const cnt_forces,
BondGeometries & cnt_geoms,
ContactPP *const cnt,
double dt ) const
overridevirtual

Evaluates the forces and moments between two particles using parallel bond models.

Parameters
cnt_forcesThe contact forces data structure to store the results.
cnt_geomsThe bond geometries data structure containing the contact information.
cntThe contact point between the two particles.
dtThe simulation timestep.

Reimplemented from netdem::ContactModel.

◆ EvaluateForces() [2/2]

void netdem::ParallelBond::EvaluateForces ( ContactForces *const cnt_forces,
BondGeometries & cnt_geoms,
ContactPW *const cnt,
double dt ) const
overridevirtual

Evaluates the forces and moments between a particle and a wall using parallel bond models.

Parameters
cnt_forcesThe contact forces data structure to store the results.
cnt_geomsThe bond geometries data structure containing the contact information.
cntThe contact point between the particle and the wall.
dtThe simulation timestep.

Reimplemented from netdem::ContactModel.

◆ InitFromJson()

void netdem::ParallelBond::InitFromJson ( nlohmann::json const & js)
overridevirtual

Initializes the contact model from a JSON object.

Parameters
jsA JSON object containing the contact model properties.

Reimplemented from netdem::ContactModel.

◆ PackJson()

nlohmann::json netdem::ParallelBond::PackJson ( )
overridevirtual

Packs the contact model properties into a JSON object.

Returns
A JSON object containing the contact model properties.

Reimplemented from netdem::ContactModel.

◆ Print()

void netdem::ParallelBond::Print ( ) const
overridevirtual

Prints the contact model properties.

Reimplemented from netdem::ContactModel.

◆ SetProperty()

void netdem::ParallelBond::SetProperty ( nlohmann::json const & js)
overridevirtual

Sets the contact model properties.

Parameters
jsA JSON object containing the contact model properties.

Reimplemented from netdem::ContactModel.

◆ SetRadius()

void netdem::ParallelBond::SetRadius ( double r)

Sets the radius for the bond geometries used by this contact model.

Parameters
rThe radius to set.

Member Data Documentation

◆ beta

double netdem::ParallelBond::beta {0.0}

◆ kn

double netdem::ParallelBond::kn {2e6}

< Stiffness parameters used to calculate contact forces.

◆ kt

double netdem::ParallelBond::kt {1e6}

Maximum stress parameters used to calculate the maximum allowable force.

◆ max_sig_n

double netdem::ParallelBond::max_sig_n {1.0e6}

◆ max_sig_t

double netdem::ParallelBond::max_sig_t {1.0e6}

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