neigh_modify every, delay and check

I would like to clarify the role of the keywords “every”, ”delay” and “check” for the command “neigh_modify” with a couple of examples. Let h be half the skin distance.

Example 1:

neigh_modify delay 10 every 5 check yes

Does LAMMPS check whether any atom has moved more than h every 5 or 10 time steps? Is LAMMPS allowed to rebuild the list only after 10 time steps and if any atom has moved more than h?

Example 2:

Neigh_modify delay 10 every 5 check no

According to the manual and from my tests, LAMMPS will rebuild the list every 10 time steps. So what effect does “every” have besides requiring “delay” to be an integer multiple of “every”?

Thank you,

Marcus

I would like to clarify the role of the keywords “every”, ”delay” and
“check” for the command “neigh_modify” with a couple of examples. Let h be
half the skin distance.

Example 1:

neigh_modify delay 10 every 5 check yes

Does LAMMPS check whether any atom has moved more than h every 5 or 10 time
steps? Is LAMMPS allowed to rebuild the list only after 10 time steps and if
any atom has moved more than h?

lammps checks every 5 steps but the first
check is after 10 steps, not 5.

Example 2:

Neigh_modify delay 10 every 5 check no

According to the manual and from my tests, LAMMPS will rebuild the list
every 10 time steps. So what effect does “every” have besides requiring
“delay” to be an integer multiple of “every”?

it every has no effect. for "check no" you would
typically leave it on the default setting of 1.

FYI: the code making the choice of whether to rebuild
the neighborlist is in the function Neighbor::decide()
in the file neighbor.cpp

cheers,
    axel.

axel.