Normal forces

In mechanics, the normal force \( f^n \) is the component of a contact force that is perpendicular to the surface that a particle contacts. The following figure illustrates two particles colliding and the two normal forces at its common perpendicular direction.

Normal contact modelling.

The calculation of the normal forces between colliding particles is modeled by a linear spring and a dashpot. The linear spring models the material stiffness, and the dashpot models the energy dissipation that occurs during the real collision.

The general Algorithm to compute any normal force in MercuryDPM is:

computeNormalForce
1. Set the relative velocity relativeVelocity_
2. Set the normal relative velocity setNormalRelativeVelocity_
3. If overlap \( \delta^n > 0 \) if (getOverlap() > 0)
4. Normal force normalForce = getStiffness()* getOverlap() - getDissipation()* getNormalRelativeVelocity()
5. Set normal force setAbsoluteNormalForce(std::abs(normalForce))
6. Set force setForce(getNormal() * normalForce)
7. Set torque setTorque(Vec3D(0.0, 0.0, 0.0))

To integrate the normal contribution into the contact interaction, the developer needs to use the normal force species.

The available models to compute the normal interaction are: