diff --git a/src/KOKKOS/nbin_kokkos.cpp b/src/KOKKOS/nbin_kokkos.cpp index 090519a5a8..5fc3a89732 100644 --- a/src/KOKKOS/nbin_kokkos.cpp +++ b/src/KOKKOS/nbin_kokkos.cpp @@ -40,6 +40,7 @@ NBinKokkos::NBinKokkos(LAMMPS *lmp) : NBinStandard(lmp) { #endif h_resize() = 1; + kokkos = 1; } /* ---------------------------------------------------------------------- diff --git a/src/KOKKOS/neighbor_kokkos.cpp b/src/KOKKOS/neighbor_kokkos.cpp index e912956a3f..a594c8f7a0 100644 --- a/src/KOKKOS/neighbor_kokkos.cpp +++ b/src/KOKKOS/neighbor_kokkos.cpp @@ -301,6 +301,7 @@ void NeighborKokkos::build_kokkos(int topoflag) if (style != Neighbor::NSQ) { for (int i = 0; i < nbin; i++) { + if (!neigh_bin[i]->kokkos) atomKK->sync(Host,ALL_MASK); neigh_bin[i]->bin_atoms_setup(nall); neigh_bin[i]->bin_atoms(); } diff --git a/src/nbin.cpp b/src/nbin.cpp index a30b76cca0..3e50148a04 100644 --- a/src/nbin.cpp +++ b/src/nbin.cpp @@ -35,6 +35,8 @@ NBin::NBin(LAMMPS *lmp) : Pointers(lmp) dimension = domain->dimension; triclinic = domain->triclinic; + + kokkos = 0; } /* ---------------------------------------------------------------------- */ diff --git a/src/nbin.h b/src/nbin.h index d6022a6a35..54b8da171d 100644 --- a/src/nbin.h +++ b/src/nbin.h @@ -47,6 +47,10 @@ class NBin : protected Pointers { virtual void setup_bins(int) = 0; virtual void bin_atoms() = 0; + // Kokkos package + + int kokkos; // 1 if class stores Kokkos data + protected: // data from Neighbor class