diff --git a/src/Particle/ParticleBase.hpp b/src/Particle/ParticleBase.hpp index 0bb11a7ac1a177a0af914f5e99fe41d1abaca88d..c73c97a0eb9f3ecbfea79ad5e853aab180d96fad 100644 --- a/src/Particle/ParticleBase.hpp +++ b/src/Particle/ParticleBase.hpp @@ -112,10 +112,13 @@ namespace ippl { } // set the unique ID value for these new particles + auto pIDs = ID.getView(); + auto nextID = this->nextID_m; + auto numNodes = this->numNodes_m; Kokkos::parallel_for("ParticleBase<PLayout, Properties...>::create(size_t)", Kokkos::RangePolicy(localNum_m, nLocal), - KOKKOS_CLASS_LAMBDA(const std::int64_t i) { - ID(i) = this->nextID_m + this->numNodes_m * i; + KOKKOS_LAMBDA(const std::int64_t i) { + pIDs(i) = nextID + numNodes * i; }); nextID_m += numNodes_m * (nLocal - localNum_m); diff --git a/src/Particle/ParticleSpatialLayout.hpp b/src/Particle/ParticleSpatialLayout.hpp index 4480d033b14b247b2f483c5258c0bd719fc32d2c..d25510ff0e50a92c92af017a3f637ecd779bad51 100644 --- a/src/Particle/ParticleSpatialLayout.hpp +++ b/src/Particle/ParticleSpatialLayout.hpp @@ -158,12 +158,13 @@ namespace ippl { IpplTimings::startTimer(destroyTimer); size_type invalidCount = 0; + auto pIDs = pdata.ID.getView(); Kokkos::parallel_reduce( "set/count invalid", localnum, KOKKOS_LAMBDA(const size_t i, size_type& nInvalid) { if (invalid(i)) { - pdata.ID(i) = -1; + pIDs(i) = -1; nInvalid += 1; } }, invalidCount);