diff --git a/src/pair_hybrid.cpp b/src/pair_hybrid.cpp index 2d16d6b39f..63f92c5db6 100644 --- a/src/pair_hybrid.cpp +++ b/src/pair_hybrid.cpp @@ -37,6 +37,8 @@ PairHybrid::PairHybrid(LAMMPS *lmp) : Pair(lmp) styles = NULL; keywords = NULL; multiple = NULL; + + outerflag = 0; } /* ---------------------------------------------------------------------- */ @@ -98,7 +100,8 @@ void PairHybrid::compute(int eflag, int vflag) else vflag_substyle = vflag; for (m = 0; m < nstyles; m++) { - styles[m]->compute(eflag,vflag_substyle); + if (outerflag) styles[m]->compute(eflag,vflag_substyle); + else styles[m]->compute_outer(eflag,vflag_substyle); if (eflag_global) { eng_vdwl += styles[m]->eng_vdwl; @@ -146,8 +149,9 @@ void PairHybrid::compute_middle() void PairHybrid::compute_outer(int eflag, int vflag) { - for (int m = 0; m < nstyles; m++) - if (styles[m]->respa_enable) styles[m]->compute_outer(eflag,vflag); + outerflag = 1; + compute(eflag,vflag); + outerflag = 0; } /* ---------------------------------------------------------------------- diff --git a/src/pair_hybrid.h b/src/pair_hybrid.h index 56a20638a6..4f3e61c4a6 100644 --- a/src/pair_hybrid.h +++ b/src/pair_hybrid.h @@ -54,6 +54,8 @@ class PairHybrid : public Pair { int check_ijtype(int, int, char *); protected: + int outerflag; // toggle compute() when invoked by outer() + int **nmap; // # of sub-styles itype,jtype points to int ***map; // list of sub-styles itype,jtype points to