diff --git a/src/neighbor.cpp b/src/neighbor.cpp index e09963ecba..eb882d2e96 100644 --- a/src/neighbor.cpp +++ b/src/neighbor.cpp @@ -1931,6 +1931,17 @@ void Neighbor::set(int narg, char **arg) if (style == MULTI && lmp->citeme) lmp->citeme->add(cite_neigh_multi); } +/* ---------------------------------------------------------------------- + reset timestamps in all NeighList classes + so that neighbor lists will rebuild properly with timestep change +------------------------------------------------------------------------- */ + +void Neighbor::reset_timestep(bigint ntimestep) +{ + for (int i = 0; i < nlist; i++) + lists[i]->last_build = -1; +} + /* ---------------------------------------------------------------------- modify parameters of the pair-wise neighbor build ------------------------------------------------------------------------- */ diff --git a/src/neighbor.h b/src/neighbor.h index 7a098e9be2..23fd663e2b 100644 --- a/src/neighbor.h +++ b/src/neighbor.h @@ -86,6 +86,7 @@ class Neighbor : protected Pointers { void build_one(class NeighList *list, int preflag=0); // create a single one-time neigh list void set(int, char **); // set neighbor style and skin distance + void reset_timestep(bigint); // reset of timestep counter void modify_params(int, char**); // modify parameters that control builds bigint memory_usage(); int exclude_setting(); diff --git a/src/update.cpp b/src/update.cpp index 8bb5bca487..faf3a8c148 100644 --- a/src/update.cpp +++ b/src/update.cpp @@ -448,10 +448,9 @@ void Update::reset_timestep(bigint newstep) for (int i = 0; i < modify->ncompute; i++) if (modify->compute[i]->timeflag) modify->compute[i]->clearstep(); - // set last_build of all neigh lists to -1 to force rebuild + // Neighbor Bin/Stencil/Pair classes store timestamps that need to be cleared - for (int i = 0; i < neighbor->nlist; i++) - neighbor->lists[i]->last_build = -1; + neighbor->reset_timestep(ntimestep); // NOTE: 7Jun12, adding rerun command, don't think this is required