revision: v0.14
Contact Models in MercuryDPM

A contact model defines the governing normal and tangential behaviours of particles. Different contact models are available in MercuryDPM. The developer can have access to them via a header. For instance:

In MercuryDPM contact models consists of Species class and Interaction class. Species contains the parameters of the contact law (plus the particle property density)
while Interaction contains the functions to compute the forces.
MercuryDPM contains following contact models:

dot_inline_dotgraph_2.png

MercuryDPM includes the interactions for:

The developer can use multiple interactions defining MixedSpecies.

You can find a procedure to implement a new contact model in: Implementing a new contact law

SlidingFrictionSpecies.h
BaseInteractable::setPosition
void setPosition(const Vec3D &position)
Sets the position of this BaseInteractable.
Definition: BaseInteractable.h:239
IrreversibleAdhesiveInteraction::computeAdhesionForce
void computeAdhesionForce()
Computes the Adhesive force.
Definition: IrreversibleAdhesiveInteraction.cc:102
SlidingFrictionInteraction.h
HertzianViscoelasticSpecies.h
SpeciesHandler::getMixedObject
std::enable_if<!std::is_pointer< typename U::MixedSpeciesType >::value, typename U::MixedSpeciesType * >::type getMixedObject(const U *S, const U *T)
Definition: SpeciesHandler.h:74
Mercury3D
This adds on the hierarchical grid code for 3D problems.
Definition: Mercury3D.h:37
ParhamiMcMeekingSinterInteraction::computeAdhesionForce
void computeAdhesionForce()
Computes the adhesive forces.
Definition: ParhamiMcMeekingSinterInteraction.cc:92
BaseParticle::setRadius
virtual void setRadius(Mdouble radius)
Sets the particle's radius_ (and adjusts the mass_ accordingly, based on the particle's species)
Definition: BaseParticle.cc:542
MindlinSpecies.h
LiquidBridgeWilletInteraction::computeAdhesionForce
void computeAdhesionForce()
Computes the adhesive forces for liquid bridge Willet type of interaction.
Definition: LiquidBridgeWilletInteraction.cc:102
LinearPlasticViscoelasticInteraction::computeNormalForce
void computeNormalForce()
Creates a copy of an object of this class. (Deep copy)
Definition: LinearPlasticViscoelasticInteraction.cc:116
HertzianViscoelasticMindlinSpecies
Species< HertzianViscoelasticNormalSpecies, MindlinSpecies > HertzianViscoelasticMindlinSpecies
Definition: HertzianViscoelasticMindlinSpecies.h:34
LinearViscoelasticInteraction::computeNormalForce
void computeNormalForce()
Creates a copy of an object of this class. (Deep copy)
Definition: LinearViscoelasticInteraction.cc:105
MixedSpecies
Contains contact force properties for contacts between particles with two different species.
Definition: MixedSpecies.h:43
MindlinSpecies::setSlidingFrictionCoefficient
void setSlidingFrictionCoefficient(Mdouble new_mu)
Allows the (dynamic) Coulomb friction coefficient to be changed; also sets mu_s by default.
Definition: MindlinSpecies.cc:123
BaseParticle::setSpecies
void setSpecies(const ParticleSpecies *species)
Definition: BaseParticle.cc:804
ReversibleAdhesiveSpecies.h
LinearViscoelasticSpecies.h
LinearPlasticViscoelasticSpecies.h
HertzianViscoelasticMindlinMixedSpecies
MixedSpecies< HertzianViscoelasticNormalSpecies, MindlinSpecies > HertzianViscoelasticMindlinMixedSpecies
Definition: HertzianViscoelasticMindlinSpecies.h:35
Species
Contains material and contact force properties.
Definition: Species.h:35
MindlinSpecies::setSlidingDissipation
void setSlidingDissipation(Mdouble new_dispt)
Allows the tangential viscosity to be changed.
Definition: MindlinSpecies.cc:105
DPMBase::speciesHandler
SpeciesHandler speciesHandler
A handler to that stores the species type i.e. LinearViscoelasticSpecies, etc.
Definition: DPMBase.h:1385
FrictionSpecies.h
Species.h
SphericalParticle
A spherical particle is the most simple particle used in MercuryDPM.
Definition: SphericalParticle.h:37
ReversibleAdhesiveInteraction::computeAdhesionForce
void computeAdhesionForce()
Computes the adhesive forces.
Definition: ReversibleAdhesiveInteraction.cc:94
HertzianViscoelasticInteraction::computeNormalForce
void computeNormalForce()
Computes the amount of normal force due to an Hertzian visco-elastic interaction.
Definition: HertzianViscoelasticInteraction.cc:106
HertzianViscoelasticNormalSpecies
HertzianViscoelasticNormalSpecies contains the parameters used to describe a Hertzian normal force (T...
Definition: HertzianViscoelasticNormalSpecies.h:38
ChargedBondedInteraction::computeAdhesionForce
void computeAdhesionForce()
Computes the adhesive forces.
Definition: ChargedBondedInteraction.cc:105
MindlinSpecies::setPoissonRatio
MERCURY_DEPRECATED void setPoissonRatio(Mdouble poissonRatio)
Allows the poisson ratio to be changed.
Definition: MindlinSpecies.cc:156
SinterSpecies.h
ChargedBondedSpecies.h
SinterInteraction::computeNormalForce
void computeNormalForce()
Creates a copy of an object of this class. (Deep copy)
Definition: SinterInteraction.cc:105
MindlinInteraction::computeFrictionForce
void computeFrictionForce()
Computes the tangential force generated due to compression in the sliding spring. Does take into acco...
Definition: MindlinInteraction.cc:279
BaseHandler::copyAndAddObject
std::enable_if<!std::is_pointer< U >::value, U * >::type copyAndAddObject(const U &object)
Creates a copy of a Object and adds it to the BaseHandler.
Definition: BaseHandler.h:379
HertzianViscoelasticNormalSpecies.h
MindlinSpecies
MindlinSpecies contains the parameters used to describe sliding friction.
Definition: MindlinSpecies.h:38
IrreversibleAdhesiveSpecies.h
LiquidMigrationWilletSpecies.h