Hello, everyone.I am confused about “neigh_modify" command, although I have consulted the manuscript and previous topics. For example, if I use neigh_modify delay 0 every 10 check yes, does it mean building lists every 10 steps (build in the 1th,10th,20th step…) or each step (assume that no atoms have moved more than half the skin distance). The manuscript mentions that the delay setting means never build new lists until at least N steps after the previous build. The every setting means build lists every M steps (after the delay has passed). They seem to be a contradiction.
They are not. “every” means: consider steps that are multiples of 10. “delay” means: wait at least N steps, thus N must be a multiple of the value of “every”, so that means on steps 0, 10, 20, 30 … “check” set to means “no” means: always build a neighbor list after “delay” steps. And “check” set to “yes” only build a neighbor list on step 0 or after “delay” and when at least one atom has moved more than half the neighbor skin distance. Thus instead of a sequence of 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, … it may be 0, 20, 40, 50, 80, 90, etc.
Thanks for your help. It seems that delay is redundant, and I’m still a little confused . For example, “neigh_modify delay 20 every 10 check yes” means that it might build list on step 0, 10, 20, 40, 50, 70, 80… Does this situation exist?
No, delay is not redundant. Please give the LAMMPS developers some credit for knowing what they are doing. This is a feature that exists a very long time and is a very fundamental feature of LAMMPS. If it had been redundant, don’t you think that one of us or some other user would have noticed?
This is inconsistent with what I have just explained. The distance between two neighbor list builds has to be at least 20 steps due to “delay”, but due to “check” it may not be on that step but it could also be 10, 20 steps later. The sequence thus could be 0, 20, 40, 70, 90,…
You have to work this out on timestep numbers…
Sincerely thank you for your patient reply. I have got it.