make force_clear() a public pure function in min.h and integrate.h

these are required changes for adding NWChem couping support as a fix
This commit is contained in:
Axel Kohlmeyer
2022-05-04 12:30:17 -04:00
parent a26fa50736
commit 87b99306ba
7 changed files with 12 additions and 16 deletions

View File

@ -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

View File

@ -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);

View File

@ -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; }

View File

@ -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);

View File

@ -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;

View File

@ -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);
};

View File

@ -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