diff --git a/src/KOKKOS/neigh_bond_kokkos.cpp b/src/KOKKOS/neigh_bond_kokkos.cpp index 05a6fd605c..34858ff1e1 100644 --- a/src/KOKKOS/neigh_bond_kokkos.cpp +++ b/src/KOKKOS/neigh_bond_kokkos.cpp @@ -200,6 +200,7 @@ void NeighBondKokkos::build_topology_kk() { atomKK->sync(execution_space, X_MASK | TAG_MASK); int nall = atom->nlocal + atom->nghost; + int nmax = atom->nmax; nlocal = atom->nlocal; x = atomKK->k_x.view(); @@ -215,7 +216,9 @@ void NeighBondKokkos::build_topology_kk() int* map_array_host = atom->get_map_array(); int map_size = atom->get_map_size(); - k_map_array = DAT::tdual_int_1d("NeighBond:map_array",map_size); + int map_maxarray = atom->get_map_maxarray(); + if (map_maxarray > k_map_array.extent(0)) + k_map_array = DAT::tdual_int_1d("NeighBond:map_array",map_maxarray); for (int i=0; i(); @@ -223,7 +226,8 @@ void NeighBondKokkos::build_topology_kk() map_array = k_map_array.view(); int* sametag_host = atomKK->sametag; - k_sametag = DAT::tdual_int_1d("NeighBond:sametag",nall); + if (nmax > k_sametag.extent(0)) + k_sametag = DAT::tdual_int_1d("NeighBond:sametag",nmax); for (int i=0; i(); diff --git a/src/atom.h b/src/atom.h index b2a657cf1a..6a26c24dfe 100644 --- a/src/atom.h +++ b/src/atom.h @@ -286,6 +286,7 @@ class Atom : protected Pointers { inline int* get_map_array() {return map_array;}; inline int get_map_size() {return map_tag_max+1;}; + inline int get_map_maxarray() {return map_maxarray+1;}; bigint memory_usage(); int memcheck(const char *);