WARNING: Communication cutoff 4.6 is shorter than a bond length based estimate

Hi,

I have just updated my LAMMPS install to the most recent version (3Mar20) and my script has just started printing this warning message on mass:

Neighbor list info …

update every 1 steps, delay 10 steps, check yes

max neighbors/atom: 2000, page size: 100000

master list distance cutoff = 4.6

ghost atom cutoff = 4.6

binsize = 2.3, bins = 57 31 31

3 neighbor lists, perpetual/occasional/extra = 3 0 0

(1) pair lj/cut, perpetual, skip from (3)

attributes: half, newton on

pair build: skip

stencil: none

bin: none

(2) pair fluidmembrane, perpetual, skip from (3)

attributes: half, newton on

pair build: skip

stencil: none

bin: none

(3) neighbor class addition, perpetual

attributes: half, newton on

pair build: half/bin/newton

stencil: half/bin/3d/newton

bin: standard

Setting up Verlet run …

Unit style : lj

Current step : 5000

Time step : 0.02

WARNING: Communication cutoff 4.6 is shorter than a bond length based estimate of 4.9111. This may lead to errors. (…/comm.cpp:686)

The script ran fine without producing this warning on my previous LAMMPS version (12Dec18), however I had been having issues with memory leaks etc. Having had a look I couldn’t find an explanation for this warning on the LAMMPS doc. Could someone please explain it to me, and ideally how to fix the problem / turn it off?

Thanks,
Paul

[...]

WARNING: Communication cutoff 4.6 is shorter than a bond length based estimate of 4.9111. This may lead to errors. (../comm.cpp:686)

The script ran fine without producing this warning on my previous LAMMPS version (12Dec18), however I had been having issues with memory leaks etc. Having had a look I couldn’t find an explanation for this warning on the LAMMPS doc. Could someone please explain it to me, and ideally how to fix the problem / turn it off?

This message would not appear in older versions of LAMMPS since the
check was not done. It was added to make people aware of the risk of
"Bond/Angle/Dihedral/Improper atoms missing" errors due to their
choice of communication cutoff. If you look through the mailing list
archives you will find that this happens regularly and often people
are surprised as to why this happens. This warning helps to quickly
identify possible causes of missing topology atoms.

To explain, in LAMMPS all topology data (bonds, angles, dihedrals,
impropers) is stored with individual atoms, thus this data migrates
between subdomains as atoms move between them. To compute bonded
interactions (as well as non-bonded interactions) you thus need copies
of atoms from the neighboring subdomains (in LAMMPS-lingo referred to
as "ghost atoms") in addition to the atoms "owned" by the MPI rank of
the subdomain. How "thick" this layer of ghost atoms is, is determined
by the communication cutoff, which is by default inferred from the
largest non-bonded cutoff (plus the neighbor list skin as the atom
migration is only done during re-neighboring even though positions are
updated during every MD step). For most setups that is a sufficient
condition as excess ghost atoms mean more communication and thus
slower execution and the non-bonded cutoff is usually longer than 2-3
bond lengths. However when the non-bonded cutoff is short and the
largest bond length large in comparison, it can happen that not the
sufficient number of ghost atoms are created. This is now checked by
LAMMPS when the default ghost atom cutoff is determined and some
heuristic is applied that takes the longest equilibrium bond length
times a stretch fact times a factor depending on whether you have only
bonds, or bonds and angle or bond, angles, and dihedrals/impropers and
assuming all atoms would be in a straight line. so if there is a
mismatch, like in your setup, you have a certain risk that you could
run into a "missing bond atom" or similar error during your
simulations. However, the actual risk depends on the details of your
setup (e.g. how likely it is to have an all-straight geometry and how
much bonds can get stretched, as well as how large the difference is
between the required minimum communication cutoff (i.e. the default)
and the bond length based estimate. in your case the difference is
rather small, so the risk is low and thus the warning can be safely
ignored.

To silence the warning, you would need to increase the communication
cutoff beyond the bond based estimate, e.g. to 5.0.

HTH,
     Axel.

2 Likes

i forgot that there had been a change in the semantic compared to the
original implementation of this check.
*any* explicitly set communication cutoff should silence this warning,
so you don't need to increase it, if you believe it is safe to do so.
however, the user cutoff must be large enough for the non-bonded ghost
atom requirement, since that is a "hard" requirement and not based on
heuristics. if the manually chosen cutoff is too small, LAMMPS should
increase it (and print a warning about doing that).

axel.

1 Like