From b0bba1976b33609f163b79e515c79bccdfa7f0e7 Mon Sep 17 00:00:00 2001
From: Tim Mattox <timothy.mattox@engilitycorp.com>
Date: Tue, 26 Sep 2017 09:03:27 -0500
Subject: [PATCH] USER-DPD: remove unused coord2bin() variants, and add
 ISFINITE checks

---
 src/USER-DPD/nbin_ssa.h | 73 +++--------------------------------------
 1 file changed, 5 insertions(+), 68 deletions(-)

diff --git a/src/USER-DPD/nbin_ssa.h b/src/USER-DPD/nbin_ssa.h
index 2a0175081e..12a572b94c 100644
--- a/src/USER-DPD/nbin_ssa.h
+++ b/src/USER-DPD/nbin_ssa.h
@@ -23,6 +23,8 @@ NBinStyle(ssa,
 #define LMP_NBIN_SSA_H
 
 #include "nbin_standard.h"
+#include "math.h"
+#include "error.h"
 
 namespace LAMMPS_NS {
 
@@ -47,79 +49,14 @@ class NBinSSA : public NBinStandard {
 
   bigint memory_usage();
 
-  inline
-  int coord2bin(const double & x,const double & y,const double & z) const
-  {
-    int ix,iy,iz;
-
-    if (x >= bboxhi_[0])
-      ix = static_cast<int> ((x-bboxhi_[0])*bininvx) + nbinx;
-    else if (x >= bboxlo_[0]) {
-      ix = static_cast<int> ((x-bboxlo_[0])*bininvx);
-      ix = MIN(ix,nbinx-1);
-    } else
-      ix = static_cast<int> ((x-bboxlo_[0])*bininvx) - 1;
-
-    if (y >= bboxhi_[1])
-      iy = static_cast<int> ((y-bboxhi_[1])*bininvy) + nbiny;
-    else if (y >= bboxlo_[1]) {
-      iy = static_cast<int> ((y-bboxlo_[1])*bininvy);
-      iy = MIN(iy,nbiny-1);
-    } else
-      iy = static_cast<int> ((y-bboxlo_[1])*bininvy) - 1;
-
-    if (z >= bboxhi_[2])
-      iz = static_cast<int> ((z-bboxhi_[2])*bininvz) + nbinz;
-    else if (z >= bboxlo_[2]) {
-      iz = static_cast<int> ((z-bboxlo_[2])*bininvz);
-      iz = MIN(iz,nbinz-1);
-    } else
-      iz = static_cast<int> ((z-bboxlo_[2])*bininvz) - 1;
-
-    return (iz-mbinzlo)*mbiny*mbinx + (iy-mbinylo)*mbinx + (ix-mbinxlo);
-  }
-
-  inline
-  int coord2bin(const double & x,const double & y,const double & z, int* i) const
-  {
-    int ix,iy,iz;
-
-    if (x >= bboxhi_[0])
-      ix = static_cast<int> ((x-bboxhi_[0])*bininvx) + nbinx;
-    else if (x >= bboxlo_[0]) {
-      ix = static_cast<int> ((x-bboxlo_[0])*bininvx);
-      ix = MIN(ix,nbinx-1);
-    } else
-      ix = static_cast<int> ((x-bboxlo_[0])*bininvx) - 1;
-
-    if (y >= bboxhi_[1])
-      iy = static_cast<int> ((y-bboxhi_[1])*bininvy) + nbiny;
-    else if (y >= bboxlo_[1]) {
-      iy = static_cast<int> ((y-bboxlo_[1])*bininvy);
-      iy = MIN(iy,nbiny-1);
-    } else
-      iy = static_cast<int> ((y-bboxlo_[1])*bininvy) - 1;
-
-    if (z >= bboxhi_[2])
-      iz = static_cast<int> ((z-bboxhi_[2])*bininvz) + nbinz;
-    else if (z >= bboxlo_[2]) {
-      iz = static_cast<int> ((z-bboxlo_[2])*bininvz);
-      iz = MIN(iz,nbinz-1);
-    } else
-      iz = static_cast<int> ((z-bboxlo_[2])*bininvz) - 1;
-
-    i[0] = ix - mbinxlo;
-    i[1] = iy - mbinylo;
-    i[2] = iz - mbinzlo;
-
-    return (iz-mbinzlo)*mbiny*mbinx + (iy-mbinylo)*mbinx + (ix-mbinxlo);
-  }
-
   inline
   int coord2bin(const double & x,const double & y,const double & z, int &ixo, int &iyo, int &izo) const
   {
     int ix,iy,iz;
 
+    if (!ISFINITE(x) || !ISFINITE(y) || !ISFINITE(z))
+      error->one(FLERR,"Non-numeric positions - simulation unstable");
+
     if (x >= bboxhi_[0])
       ix = static_cast<int> ((x-bboxhi_[0])*bininvx) + nbinx;
     else if (x >= bboxlo_[0]) {
-- 
GitLab