From 08ac3d54dd9480dd01016df12e5a5d1b2e1e2d31 Mon Sep 17 00:00:00 2001 From: sjplimp Date: Sat, 23 Jul 2016 00:24:54 +0000 Subject: [PATCH] git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@15364 f3b2605a-c512-4ea7-a41b-209d697bcdaa --- src/neighbor.cpp | 11 +++++++++++ src/neighbor.h | 1 + src/update.cpp | 5 ++--- 3 files changed, 14 insertions(+), 3 deletions(-) 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