What exactly does a neighbor list rebuild entail?

Hello everyone,

I am interested in benchmarking the time required to build a neighbor list for a single configuration. The precise question I am trying to answer is “after the atom coordinates are loaded into memory, how much CPU time does it take to build the neighbor list from those atom coordinates”?

To get good results, I would like to time 1000 iterations of this process, instead of 1. So my question is, when a neighbor list is rebuilt (when the requirements set by delay, every and check commands are satisfied), is the process that occurs identical to the process that happens the first time the list is built? Or does the algorithm use information from previous neighbor lists for acceleration, invalidating the test?

As an example, would this script be an appropriate way to benchmark the neighbor time?

Neighbor lists are built from scratch every time.

You could remove the pair style setting,

and just re-build the neigh list 1000 times.

This should be little different than doing a simple

simulation (bench/in.lj) and examing the Neighbor CPU

timing in the log file and dividing by the # of times

the neigh list was built.