diff --git a/src/KOKKOS/verlet_kokkos.h b/src/KOKKOS/verlet_kokkos.h index 0581068598..a45de20f7f 100644 --- a/src/KOKKOS/verlet_kokkos.h +++ b/src/KOKKOS/verlet_kokkos.h @@ -35,6 +35,7 @@ class VerletKokkos : public Verlet { void setup(int) override; void setup_minimal(int) override; void run(int) override; + void force_clear() override; KOKKOS_INLINE_FUNCTION void operator() (const int& i) const { @@ -43,13 +44,9 @@ class VerletKokkos : public Verlet { f(i,2) += f_merge_copy(i,2); } - protected: DAT::t_f_array f_merge_copy,f; - - void force_clear() override; }; - } #endif diff --git a/src/OPENMP/respa_omp.cpp b/src/OPENMP/respa_omp.cpp index 93eb3c41ef..cecde2ff02 100644 --- a/src/OPENMP/respa_omp.cpp +++ b/src/OPENMP/respa_omp.cpp @@ -117,7 +117,7 @@ void RespaOMP::setup(int flag) ev_set(update->ntimestep); for (int ilevel = 0; ilevel < nlevels; ilevel++) { - force_clear(newton[ilevel]); + force_clear(); modify->setup_pre_force_respa(vflag,ilevel); if (nhybrid_styles > 0) { @@ -211,7 +211,7 @@ void RespaOMP::setup_minimal(int flag) ev_set(update->ntimestep); for (int ilevel = 0; ilevel < nlevels; ilevel++) { - force_clear(newton[ilevel]); + force_clear(); modify->setup_pre_force_respa(vflag,ilevel); if (nhybrid_styles > 0) { @@ -343,7 +343,7 @@ void RespaOMP::recurse(int ilevel) // so that any order dependencies are the same // when potentials are invoked at same level - force_clear(newton[ilevel]); + force_clear(); if (modify->n_pre_force_respa) { timer->stamp(); modify->pre_force_respa(vflag,ilevel,iloop); diff --git a/src/integrate.h b/src/integrate.h index e7e1fef837..6905b6ddcc 100644 --- a/src/integrate.h +++ b/src/integrate.h @@ -26,6 +26,7 @@ class Integrate : protected Pointers { virtual void setup(int flag) = 0; virtual void setup_minimal(int) = 0; virtual void run(int) = 0; + virtual void force_clear() = 0; virtual void cleanup() {} virtual void reset_dt() {} virtual double memory_usage() { return 0; } diff --git a/src/min.h b/src/min.h index 269726e7aa..169e7fb7e8 100644 --- a/src/min.h +++ b/src/min.h @@ -34,6 +34,7 @@ class Min : protected Pointers { virtual void setup(int flag = 1); virtual void setup_minimal(int); virtual void run(int); + virtual void force_clear(); void cleanup(); int request(class Pair *, int, double); virtual double memory_usage() { return 0; } @@ -138,7 +139,6 @@ class Min : protected Pointers { int neigh_every, neigh_delay, neigh_dist_check; // neighboring params virtual double energy_force(int); - virtual void force_clear(); void ev_setup(); void ev_set(bigint); diff --git a/src/respa.cpp b/src/respa.cpp index 5a715d737f..650b04e6d6 100644 --- a/src/respa.cpp +++ b/src/respa.cpp @@ -413,7 +413,7 @@ void Respa::setup(int flag) ev_set(update->ntimestep); for (int ilevel = 0; ilevel < nlevels; ilevel++) { - force_clear(newton[ilevel]); + force_clear(); modify->setup_pre_force_respa(vflag, ilevel); if (nhybrid_styles > 0) { @@ -481,7 +481,7 @@ void Respa::setup_minimal(int flag) ev_set(update->ntimestep); for (int ilevel = 0; ilevel < nlevels; ilevel++) { - force_clear(newton[ilevel]); + force_clear(); modify->setup_pre_force_respa(vflag, ilevel); if (nhybrid_styles > 0) { @@ -644,7 +644,7 @@ void Respa::recurse(int ilevel) // so that any order dependencies are the same // when potentials are invoked at same level - force_clear(newton[ilevel]); + force_clear(); if (modify->n_pre_force_respa) { timer->stamp(); modify->pre_force_respa(vflag, ilevel, iloop); @@ -717,7 +717,7 @@ void Respa::recurse(int ilevel) clear other arrays as needed ------------------------------------------------------------------------- */ -void Respa::force_clear(int /*newtonflag*/) +void Respa::force_clear() { if (external_force_clear) return; diff --git a/src/respa.h b/src/respa.h index 5ea2015bc3..68df9c179b 100644 --- a/src/respa.h +++ b/src/respa.h @@ -51,6 +51,7 @@ class Respa : public Integrate { void setup(int) override; void setup_minimal(int) override; void run(int) override; + void force_clear() override; void cleanup() override; void reset_dt() override; @@ -65,7 +66,6 @@ class Respa : public Integrate { class FixRespa *fix_respa; // Fix to store the force level array virtual void recurse(int); - void force_clear(int); void sum_flevel_f(); void set_compute_flags(int ilevel); }; diff --git a/src/verlet.h b/src/verlet.h index f02e5859f6..98770f33f1 100644 --- a/src/verlet.h +++ b/src/verlet.h @@ -27,18 +27,16 @@ namespace LAMMPS_NS { class Verlet : public Integrate { public: Verlet(class LAMMPS *, int, char **); - void init() override; void setup(int flag) override; void setup_minimal(int) override; void run(int) override; + void force_clear() override; void cleanup() override; protected: int triclinic; // 0 if domain is orthog, 1 if triclinic int torqueflag, extraflag; - - virtual void force_clear(); }; } // namespace LAMMPS_NS