From 1111c8ba93c913fba1f2a543599ccc0c2d716ebb Mon Sep 17 00:00:00 2001
From: sjplimp <sjplimp@f3b2605a-c512-4ea7-a41b-209d697bcdaa>
Date: Sat, 16 Jul 2016 22:19:46 +0000
Subject: [PATCH] git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@15337
 f3b2605a-c512-4ea7-a41b-209d697bcdaa

---
 src/USER-OMP/fix_shear_history_omp.cpp | 22 ++++++++--------------
 1 file changed, 8 insertions(+), 14 deletions(-)

diff --git a/src/USER-OMP/fix_shear_history_omp.cpp b/src/USER-OMP/fix_shear_history_omp.cpp
index a91a129fee..fa9ca0711c 100644
--- a/src/USER-OMP/fix_shear_history_omp.cpp
+++ b/src/USER-OMP/fix_shear_history_omp.cpp
@@ -38,7 +38,6 @@ using namespace FixConst;
 
 void FixShearHistoryOMP::pre_exchange()
 {
-
   const int nthreads = comm->nthreads;
   maxtouch = 0;
 
@@ -56,10 +55,10 @@ void FixShearHistoryOMP::pre_exchange()
     int i,j,ii,jj,m,n,inum,jnum;
     int *ilist,*jlist,*numneigh,**firstneigh;
     int *touch,**firsttouch;
-    double *shear,*allshear,**firstshear;
+    double *shear,*shearj,*allshear,**firstshear;
 
     MyPage <tagint> &ipg = ipage[tid];
-    MyPage <double[3]> &dpg = dpage[tid];
+    MyPage <double> &dpg = dpage[tid];
     ipg.reset();
     dpg.reset();
 
@@ -117,7 +116,7 @@ void FixShearHistoryOMP::pre_exchange()
       if ((i >= lfrom) && (i < lto)) {
         n = npartner[i];
         partner[i] = ipg.get(n);
-        shearpartner[i] = dpg.get(n);
+        shearpartner[i] = dpg.get(dnum*n);
         if (partner[i] == NULL || shearpartner[i] == NULL)
           error->one(FLERR,"Shear history overflow, boost neigh_modify one");
       }
@@ -143,21 +142,16 @@ void FixShearHistoryOMP::pre_exchange()
           j &= NEIGHMASK;
 
           if ((i >= lfrom) && (i < lto)) {
-            m = npartner[i];
+            m = npartner[i]++;
             partner[i][m] = tag[j];
-            shearpartner[i][m][0] = shear[0];
-            shearpartner[i][m][1] = shear[1];
-            shearpartner[i][m][2] = shear[2];
-            npartner[i]++;
+            memcpy(&shearpartner[i][dnum*m],shear,dnumbytes);
           }
 
           if ((j >= lfrom) && (j < lto)) {
-            m = npartner[j];
+            m = npartner[j]++;
             partner[j][m] = tag[i];
-            shearpartner[j][m][0] = -shear[0];
-            shearpartner[j][m][1] = -shear[1];
-            shearpartner[j][m][2] = -shear[2];
-            npartner[j]++;
+            shearj = &shearpartner[j][dnum*m];
+            for (n = 0; n < dnum; n++) shearj[n] = -shear[n];
           }
         }
       }
-- 
GitLab