From 7cff343680ce1fb1731fad37969b128d3e69da3a Mon Sep 17 00:00:00 2001
From: Dan Ibanez <dan.a.ibanez@gmail.com>
Date: Wed, 4 Jan 2017 10:57:52 -0700
Subject: [PATCH] fix allocation regressions in PairTableKokkos

---
 src/KOKKOS/pair_table_kokkos.cpp | 11 ++++++++++-
 src/KOKKOS/pair_table_kokkos.h   |  9 ---------
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/KOKKOS/pair_table_kokkos.cpp b/src/KOKKOS/pair_table_kokkos.cpp
index d55b084bc1..093057c8cf 100644
--- a/src/KOKKOS/pair_table_kokkos.cpp
+++ b/src/KOKKOS/pair_table_kokkos.cpp
@@ -54,6 +54,7 @@ PairTableKokkos<DeviceType>::~PairTableKokkos()
 {
   delete h_table;
   delete d_table;
+  copymode = true; //prevents base class destructor from running
 }
 
 /* ---------------------------------------------------------------------- */
@@ -345,10 +346,18 @@ void PairTableKokkos<DeviceType>::create_kokkos_tables()
 template<class DeviceType>
 void PairTableKokkos<DeviceType>::allocate()
 {
-  PairTable::allocate();
+  allocated = 1;
+  const int nt = atom->ntypes + 1;
+
+  memory->create(setflag,nt,nt,"pair:setflag");
+  memory->create_kokkos(d_table->cutsq,h_table->cutsq,cutsq,nt,nt,"pair:cutsq");
+  memory->create_kokkos(d_table->tabindex,h_table->tabindex,tabindex,nt,nt,"pair:tabindex");
 
   d_table_const.cutsq = d_table->cutsq;
   d_table_const.tabindex = d_table->tabindex;
+  memset(&setflag[0][0],0,nt*nt*sizeof(int));
+  memset(&cutsq[0][0],0,nt*nt*sizeof(double));
+  memset(&tabindex[0][0],0,nt*nt*sizeof(int));
 }
 
 /* ----------------------------------------------------------------------
diff --git a/src/KOKKOS/pair_table_kokkos.h b/src/KOKKOS/pair_table_kokkos.h
index a13c0bcba4..56d84d7553 100644
--- a/src/KOKKOS/pair_table_kokkos.h
+++ b/src/KOKKOS/pair_table_kokkos.h
@@ -93,15 +93,6 @@ class PairTableKokkos : public PairTable {
     typename ArrayTypes<LMPHostType>::t_ffloat_2d rsq,drsq,e,de,f,df,e2,f2;
   };
 
-  struct Table {
-    int ninput,rflag,fpflag,match,ntablebits;
-    int nshiftbits,nmask;
-    double rlo,rhi,fplo,fphi,cut;
-    double *rfile,*efile,*ffile;
-    double *e2file,*f2file;
-    double innersq,delta,invdelta,deltasq6;
-    double *rsq,*drsq,*e,*de,*f,*df,*e2,*f2;
-  };
   TableDeviceConst d_table_const;
   TableDevice* d_table;
   TableHost* h_table;
-- 
GitLab