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

Contact model that evaluates forces and moments based on volume overlap and relative velocity. More...

#include <model_volume_based.hpp>

Inheritance diagram for netdem::VolumeBased:
netdem::ContactModel

Public Member Functions

 VolumeBased ()
 Default constructor for VolumeBased.
 
 VolumeBased (double kn, double kt, double mu, double beta)
 Constructor for VolumeBased.
 
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 EvaluateForces (ContactForces *const cnt_forces, CollisionGeometries &cnt_geoms, ContactPP *const cnt, double dt) const override
 Evaluates the forces and moments between two particles.
 
void EvaluateForces (ContactForces *const cnt_forces, CollisionGeometries &cnt_geoms, ContactPW *const cnt, double dt) const override
 Evaluates the forces and moments between a particle and a wall.
 
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, BondGeometries &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, BondGeometries &cnt_geoms, ContactPW *const cnt, double dt) const
 Calculate the contact forces and moments due to this model.
 
virtual ~ContactModel ()
 

Public Attributes

int order {2}
 Parameters used to calculate contact forces.
 
double kn {2e6}
 
double kt {1e6}
 
double beta {0.7}
 
double mu {0.5}
 
- 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

Constructor & Destructor Documentation

◆ VolumeBased() [1/2]

netdem::VolumeBased::VolumeBased ( )

Default constructor for VolumeBased.

◆ VolumeBased() [2/2]

netdem::VolumeBased::VolumeBased ( double kn,
double kt,
double mu,
double beta )

Constructor for VolumeBased.

Parameters
knNormal stiffness parameter used to calculate contact forces.
ktTangential stiffness parameter used to calculate contact forces.
muCoefficient of friction used to calculate contact forces.
betaCoefficient of restitution used to calculate contact forces.

Member Function Documentation

◆ Clone()

ContactModel * netdem::VolumeBased::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::VolumeBased::EvaluateForces ( ContactForces *const cnt_forces,
CollisionGeometries & cnt_geoms,
ContactPP *const cnt,
double dt ) const
overridevirtual

Evaluates the forces and moments between two particles.

Parameters
cnt_forcesThe contact forces data structure to store the results.
cnt_geomsThe collision 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::VolumeBased::EvaluateForces ( ContactForces *const cnt_forces,
CollisionGeometries & cnt_geoms,
ContactPW *const cnt,
double dt ) const
overridevirtual

Evaluates the forces and moments between a particle and a wall.

Parameters
cnt_forcesThe contact forces data structure to store the results.
cnt_geomsThe collision 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::VolumeBased::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::VolumeBased::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::VolumeBased::Print ( ) const
overridevirtual

Prints the contact model properties.

Reimplemented from netdem::ContactModel.

◆ SetProperty()

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

Sets the contact model properties.

Parameters
jsA JSON object containing the contact model properties.

Reimplemented from netdem::ContactModel.

Member Data Documentation

◆ beta

double netdem::VolumeBased::beta {0.7}

◆ kn

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

◆ kt

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

◆ mu

double netdem::VolumeBased::mu {0.5}

◆ order

int netdem::VolumeBased::order {2}

Parameters used to calculate contact forces.

< The order of the polynomial kernel function used to evaluate contact forces.


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