From 27553283c30e0bddfb40d30e95117e2593f9021b Mon Sep 17 00:00:00 2001
From: Axel Kohlmeyer <akohlmey@gmail.com>
Date: Fri, 11 Aug 2017 08:28:37 -0400
Subject: [PATCH] fix bug with pair_modify <style> compute not triggering the
 correct global change

---
 src/pair.cpp        |  2 +-
 src/pair_hybrid.cpp | 12 +++++++++---
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/pair.cpp b/src/pair.cpp
index ce711c4f5d..05319e33f2 100644
--- a/src/pair.cpp
+++ b/src/pair.cpp
@@ -75,7 +75,7 @@ Pair::Pair(LAMMPS *lmp) : Pointers(lmp)
   ewaldflag = pppmflag = msmflag = dispersionflag = tip4pflag = dipoleflag = 0;
   reinitflag = 1;
 
-  // pair_modify settingsx
+  // pair_modify settings
 
   compute_flag = 1;
   manybody_flag = 0;
diff --git a/src/pair_hybrid.cpp b/src/pair_hybrid.cpp
index fa79f1cf97..31360d13ff 100644
--- a/src/pair_hybrid.cpp
+++ b/src/pair_hybrid.cpp
@@ -36,7 +36,7 @@ PairHybrid::PairHybrid(LAMMPS *lmp) : Pair(lmp),
   map(NULL), special_lj(NULL), special_coul(NULL), compute_tally(NULL)
 {
   nstyles = 0;
-  
+
   outerflag = 0;
   respaflag = 0;
 
@@ -490,7 +490,7 @@ void PairHybrid::init_style()
         if (((force->special_lj[i] == 0.0) || (force->special_lj[i] == 1.0))
             && (force->special_lj[i] != special_lj[istyle][i]))
           error->all(FLERR,"Pair_modify special setting for pair hybrid "
-		     "incompatible with global special_bonds setting");
+                     "incompatible with global special_bonds setting");
       }
     }
 
@@ -500,7 +500,7 @@ void PairHybrid::init_style()
              || (force->special_coul[i] == 1.0))
             && (force->special_coul[i] != special_coul[istyle][i]))
           error->all(FLERR,"Pair_modify special setting for pair hybrid "
-		     "incompatible with global special_bonds setting");
+                     "incompatible with global special_bonds setting");
       }
     }
   }
@@ -832,6 +832,12 @@ void PairHybrid::modify_params(int narg, char **arg)
     Pair::modify_params(narg,arg);
     for (int m = 0; m < nstyles; m++) styles[m]->modify_params(narg,arg);
   }
+
+  // reset global compute_flag since there may have been changes
+  // to any of the substyles
+  compute_flag = 0;
+  for (int m = 0; m < nstyles; m++)
+    if (styles[m]->compute_flag) compute_flag = 1;
 }
 
 /* ----------------------------------------------------------------------
-- 
GitLab