there are still some known issues with respect to neighbor list builds
in certain corner cases that are being worked on.
you may want to keep an eye on this page to keep track of important
Can I know what kind of issues with respect to neighbor list builds? I guess
in certain (complex) cases the list of neighbors is incorrect, i.e.
either has too many or too few neighbors or the wrong neighbors
you mean building neighbor lists in an efficient way. I am not familiar with
C++ programming, but I think one of the most routine parts of a MD
simulation program might be the construction of a list of neighboring atoms.
yes, but since LAMMPS is a large and complex program package that
supports a large variety of potential styles as well as fixes and
computes which may request a neighbor lists, it also has a large
number of different methods to assemble those, some of which have to
be implemented special for multi-threading, vectorization or GPUs and
for different options. there also is code, that tries to infer
neighbor lists requested by some part of the code from those that are
requested by other parts through selective or full copying of
neighbors. if you look at the output of a recent LAMMPS version, you
see a detailed summary of the neighbor list requests and how they are
built. we are talking here of over 200 individual (and mostly short)
files, but also of some of the most complex code in LAMMPS.
the recent changes were done, because the previous approach had become
increasingly difficult to maintain. mind you, different LAMMPS
developers had worked on this and tested it in a separate development
branch for several months, before the changes were included in the
main version, but considering the complexity of the problem at hand,
it is quite expected to have problems in some of the corner cases,
since there are far too many possible permutations to thoroughly test
everything for all variants and combinations before releasing it as a
so, careful testing and comparing different LAMMPS versions, like you
have done in your situation with fix momentum, is always a good idea.
the LAMMPS developers are always working on improving the code and
fixing problems, and we're also increasingly utilizing tools to
automate this process and expand the coverage of tests. so we're
hoping that the number of mistakes and bugs overall is shrinking, but
at the same time, every newly added feature may open up a new set of
bugs, because there are many more new permutations of features, some
of which may not have been anticipated and thus are not always fully
tested and validated.