How to Dynamically Switch Contact Stiffness in pair_style granular/hertz Based on Overlap Threshold in LAMMPS

Hello everyone,

I am currently working with the pair_style granular/hertz contact model in LAMMPS, and I would like to implement a feature where the contact stiffness (Young’s modulus) changes based on the overlap between particles.

The idea is to use a “soft contact” behavior (i.e., low E values) when the overlap is below a certain threshold, and then switch to a “hard contact” (high E values) once the overlap exceeds this threshold, I wish to simulate a case of hard particle coated by soft coating.

Here’s the setup I am working with:

Initial phase: The overlap is small, and I want to apply a softer contact stiffness (like a thin film).

After the threshold: Once the overlap exceeds a predefined threshold, I would like to switch to the standard Hertzian contact stiffness (higher stiffness).

I’ve tried using pair_style granular/hertz, but I am unsure how to dynamically adjust the stiffness once the overlap crosses the threshold. Is there a way to control this behavior within the pair_style granular/hertz model?

or is there any method or command could be suitable ?

Thank you in advance for any help or advice!

Best regards,
deyun

:stuck_out_tongue_closed_eyes:

:pleading_face:

Hi @Tom_lammps,

Not as far as I know but in such use case and context, the best is maybe to modify the pair_style according to your needs. This shouldn’t be that hard if there is only a distance criterion in your case. But you might see physical problems when transitioning from one region to the other in your model. This is up to you to check and verify that it is sound to do.

There is not, but that would be a very easy submodel to add to pair granular. See this doc page for some info on how to do it:

https://docs.lammps.org/Modify_gran_sub_mod.html

In fact, the example case is a piecewise hookean interaction. Should be easy to modify to Hertz.

2 Likes

Thanks for your share for this message, I will try to modify the source code by myself

Thanks for your reponse, I will try to learn how to modify the source code