From 47e2ca6eb200b6dc7921a3d79b2a439f93084558 Mon Sep 17 00:00:00 2001
From: Axel Kohlmeyer <akohlmey@gmail.com>
Date: Wed, 7 Mar 2018 09:52:14 -0500
Subject: [PATCH] apply bugfix to reaxff taper function as described in issue
 #828

---
 lib/reax/reax_charges.F          | 2 +-
 src/KOKKOS/pair_reaxc_kokkos.cpp | 2 +-
 src/QEQ/fix_qeq_shielded.cpp     | 2 +-
 src/REAX/pair_reax.cpp           | 2 +-
 src/USER-REAXC/fix_qeq_reax.cpp  | 2 +-
 src/USER-REAXC/reaxc_init_md.cpp | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/lib/reax/reax_charges.F b/lib/reax/reax_charges.F
index 5a884d82c6..5815501a29 100644
--- a/lib/reax/reax_charges.F
+++ b/lib/reax/reax_charges.F
@@ -78,7 +78,7 @@ c$$$      end if
       SWC3= 140.0D0*(SWA3*SWB+3.0D0*SWA2*SWB2+SWA*SWB3)/D7
       SWC2=-210.0D0*(SWA3*SWB2+SWA2*SWB3)/D7
       SWC1= 140.0D0*SWA3*SWB3/D7
-      SWC0=(-35.0D0*SWA3*SWB2*SWB2+21.0D0*SWA2*SWB3*SWB2+
+      SWC0=(-35.0D0*SWA3*SWB2*SWB2+21.0D0*SWA2*SWB3*SWB2-
      $7.0D0*SWA*SWB3*SWB3+SWB3*SWB3*SWB)/D7
  
       return
diff --git a/src/KOKKOS/pair_reaxc_kokkos.cpp b/src/KOKKOS/pair_reaxc_kokkos.cpp
index 1f59637767..032e428162 100644
--- a/src/KOKKOS/pair_reaxc_kokkos.cpp
+++ b/src/KOKKOS/pair_reaxc_kokkos.cpp
@@ -358,7 +358,7 @@ void PairReaxCKokkos<DeviceType>::init_md()
   k_tap.h_view(3) = 140.0 * (swa3*swb + 3.0*swa2*swb2 + swa*swb3 ) / d7;
   k_tap.h_view(2) =-210.0 * (swa3*swb2 + swa2*swb3) / d7;
   k_tap.h_view(1) = 140.0 * swa3 * swb3 / d7;
-  k_tap.h_view(0) = (-35.0*swa3*swb2*swb2 + 21.0*swa2*swb3*swb2 +
+  k_tap.h_view(0) = (-35.0*swa3*swb2*swb2 + 21.0*swa2*swb3*swb2 -
                      7.0*swa*swb3*swb3 + swb3*swb3*swb ) / d7;
 
   k_tap.template modify<LMPHostType>();
diff --git a/src/QEQ/fix_qeq_shielded.cpp b/src/QEQ/fix_qeq_shielded.cpp
index 661dd73f7b..a5e0324d69 100644
--- a/src/QEQ/fix_qeq_shielded.cpp
+++ b/src/QEQ/fix_qeq_shielded.cpp
@@ -105,7 +105,7 @@ void FixQEqShielded::init_shielding()
   Tap[3] = 140.0 * (swa3*swb + 3.0*swa2*swb2 + swa*swb3 ) / d7;
   Tap[2] =-210.0 * (swa3*swb2 + swa2*swb3) / d7;
   Tap[1] = 140.0 * swa3 * swb3 / d7;
-  Tap[0] = (-35.0*swa3*swb2*swb2 + 21.0*swa2*swb3*swb2 +
+  Tap[0] = (-35.0*swa3*swb2*swb2 + 21.0*swa2*swb3*swb2 -
             7.0*swa*swb3*swb3 + swb3*swb3*swb ) / d7;
 }
 
diff --git a/src/REAX/pair_reax.cpp b/src/REAX/pair_reax.cpp
index be270b3ede..202051fc52 100644
--- a/src/REAX/pair_reax.cpp
+++ b/src/REAX/pair_reax.cpp
@@ -720,7 +720,7 @@ void PairREAX::taper_setup()
   swc3= 140.0e0*(swa3*swb+3.0e0*swa2*swb2+swa*swb3)/d7;
   swc2=-210.0e0*(swa3*swb2+swa2*swb3)/d7;
   swc1= 140.0e0*swa3*swb3/d7;
-  swc0=(-35.0e0*swa3*swb2*swb2+21.0e0*swa2*swb3*swb2+
+  swc0=(-35.0e0*swa3*swb2*swb2+21.0e0*swa2*swb3*swb2-
         7.0e0*swa*swb3*swb3+swb3*swb3*swb)/d7;
 }
 
diff --git a/src/USER-REAXC/fix_qeq_reax.cpp b/src/USER-REAXC/fix_qeq_reax.cpp
index d1c4f90771..a79c5edd07 100644
--- a/src/USER-REAXC/fix_qeq_reax.cpp
+++ b/src/USER-REAXC/fix_qeq_reax.cpp
@@ -428,7 +428,7 @@ void FixQEqReax::init_taper()
   Tap[3] = 140.0 * (swa3*swb + 3.0*swa2*swb2 + swa*swb3) / d7;
   Tap[2] =-210.0 * (swa3*swb2 + swa2*swb3) / d7;
   Tap[1] = 140.0 * swa3 * swb3 / d7;
-  Tap[0] = (-35.0*swa3*swb2*swb2 + 21.0*swa2*swb3*swb2 +
+  Tap[0] = (-35.0*swa3*swb2*swb2 + 21.0*swa2*swb3*swb2 -
             7.0*swa*swb3*swb3 + swb3*swb3*swb) / d7;
 }
 
diff --git a/src/USER-REAXC/reaxc_init_md.cpp b/src/USER-REAXC/reaxc_init_md.cpp
index b11cdd2fbc..4af21284f2 100644
--- a/src/USER-REAXC/reaxc_init_md.cpp
+++ b/src/USER-REAXC/reaxc_init_md.cpp
@@ -113,7 +113,7 @@ void Init_Taper( control_params *control,  storage *workspace, MPI_Comm comm )
   workspace->Tap[3] = 140.0 * (swa3*swb + 3.0*swa2*swb2 + swa*swb3 ) / d7;
   workspace->Tap[2] =-210.0 * (swa3*swb2 + swa2*swb3) / d7;
   workspace->Tap[1] = 140.0 * swa3 * swb3 / d7;
-  workspace->Tap[0] = (-35.0*swa3*swb2*swb2 + 21.0*swa2*swb3*swb2 +
+  workspace->Tap[0] = (-35.0*swa3*swb2*swb2 + 21.0*swa2*swb3*swb2 -
                      7.0*swa*swb3*swb3 + swb3*swb3*swb ) / d7;
 }
 
-- 
GitLab