Variable 'history' does not work on second contact in GRANULAR package

Dear LAMMPS community,

I am adding a new plastic contact model to the GRANULAR package. In the real world, granules in contact produce plastic deformation and still leave residual deformation delta_r after separation, and the problem I’m having in developing the new model is related to this.

I used LAMMPS to simulate the process of contact-separation-recontact of two granules, the first contact was normal, the distance between the centers of mass of the two granules during separation exceeded the sum of the radii, and on the second contact LAMMPS seemed to clear the variable ‘history’ (similar to the variable in the TangentialMindlin source code) that I had left behind in the plastic contact source code. That is, the variable saved in the first contact do not work in the second contact. This problem causes the second contact to ignore delta_r.

Does anyone have any ideas, I can’t seem to modify force cutoff to make LAMMPS think there is only one contact the whole time.

Thank you very much for your time.

Thank you for giving a clear context of your situation. The problem we face now is that without looking at your source code, we do not know how you have tried to modify LAMMPS and hence what might be going wrong.

1 Like

If I understand your description correctly, neighbor history cannot generally describe this physical process. What if the grains rotate before coming back into contact? Or what if a third grain comes into contact in the plastic deformed region? Is there an example of what you’re trying to accomplish in the literature?

Physically, it seems like you’d need to store an orientated map of plastic deformation at the atom level. Or go to a more detailed method (e.g. MPM, BPM).