diff --git a/src/KOKKOS/group_kokkos.cpp b/src/KOKKOS/group_kokkos.cpp index 3a760c19c3..b2de2e6a64 100644 --- a/src/KOKKOS/group_kokkos.cpp +++ b/src/KOKKOS/group_kokkos.cpp @@ -30,6 +30,7 @@ template GroupKokkos::GroupKokkos(LAMMPS *lmp) : Group(lmp) { atomKK = (AtomKokkos *)atom; + execution_space = ExecutionSpaceFromDevice::space; } // ---------------------------------------------------------------------- @@ -51,7 +52,7 @@ double GroupKokkos::mass(int igroup) if (atomKK->rmass) { auto d_rmass = atomKK->k_rmass.template view(); - atomKK->sync(ExecutionSpaceFromDevice::space,MASK_MASK|RMASS_MASK); + atomKK->sync(execution_space,MASK_MASK|RMASS_MASK); Kokkos::parallel_reduce(atom->nlocal, KOKKOS_LAMBDA(const int i, double &l_one) { if (d_mask(i) & groupbit) l_one += d_rmass(i); @@ -61,7 +62,7 @@ double GroupKokkos::mass(int igroup) auto d_mass = atomKK->k_mass.template view(); auto d_type = atomKK->k_type.template view(); - atomKK->sync(ExecutionSpaceFromDevice::space,MASK_MASK|TYPE_MASK); + atomKK->sync(execution_space,MASK_MASK|TYPE_MASK); atomKK->k_mass.template sync(); Kokkos::parallel_reduce(atom->nlocal, KOKKOS_LAMBDA(const int i, double &l_one) { @@ -97,7 +98,7 @@ void GroupKokkos::xcm(int igroup, double masstotal, double *xcm) if (atomKK->rmass) { auto d_rmass = atomKK->k_rmass.template view(); - atomKK->sync(ExecutionSpaceFromDevice::space,X_MASK|MASK_MASK|IMAGE_MASK|RMASS_MASK); + atomKK->sync(execution_space,X_MASK|MASK_MASK|IMAGE_MASK|RMASS_MASK); Kokkos::parallel_reduce(atom->nlocal, KOKKOS_LAMBDA(const int i, double &l_cmx, double &l_cmy, double &l_cmz) { if (d_mask(i) & groupbit) { @@ -117,7 +118,7 @@ void GroupKokkos::xcm(int igroup, double masstotal, double *xcm) auto d_mass = atomKK->k_mass.template view(); auto d_type = atomKK->k_type.template view(); - atomKK->sync(ExecutionSpaceFromDevice::space,X_MASK|MASK_MASK|IMAGE_MASK|TYPE_MASK); + atomKK->sync(execution_space,X_MASK|MASK_MASK|IMAGE_MASK|TYPE_MASK); atomKK->k_mass.template sync(); Kokkos::parallel_reduce(atom->nlocal, KOKKOS_LAMBDA(const int i, double &l_cmx, double &l_cmy, double &l_cmz) { @@ -162,7 +163,7 @@ void GroupKokkos::vcm(int igroup, double masstotal, double *vcm) if (atomKK->rmass) { auto d_rmass = atomKK->k_rmass.template view(); - atomKK->sync(ExecutionSpaceFromDevice::space,V_MASK|MASK_MASK|IMAGE_MASK|RMASS_MASK); + atomKK->sync(execution_space,V_MASK|MASK_MASK|IMAGE_MASK|RMASS_MASK); Kokkos::parallel_reduce(atom->nlocal, KOKKOS_LAMBDA(const int i, double &l_px, double &l_py, double &l_pz) { if (d_mask(i) & groupbit) { @@ -177,7 +178,7 @@ void GroupKokkos::vcm(int igroup, double masstotal, double *vcm) auto d_mass = atomKK->k_mass.template view(); auto d_type = atomKK->k_type.template view(); - atomKK->sync(ExecutionSpaceFromDevice::space,V_MASK|MASK_MASK|IMAGE_MASK|TYPE_MASK); + atomKK->sync(execution_space,V_MASK|MASK_MASK|IMAGE_MASK|TYPE_MASK); atomKK->k_mass.template sync(); Kokkos::parallel_reduce(atom->nlocal, KOKKOS_LAMBDA(const int i, double &l_px, double &l_py, double &l_pz) { @@ -224,7 +225,7 @@ void GroupKokkos::angmom(int igroup, double *xcm, double *lmom) if (atomKK->rmass) { auto d_rmass = atomKK->k_rmass.template view(); - atomKK->sync(ExecutionSpaceFromDevice::space,X_MASK|V_MASK|MASK_MASK|IMAGE_MASK|RMASS_MASK); + atomKK->sync(execution_space,X_MASK|V_MASK|MASK_MASK|IMAGE_MASK|RMASS_MASK); Kokkos::parallel_reduce(atom->nlocal, KOKKOS_LAMBDA(const int i, double &l_px, double &l_py, double &l_pz) { if (d_mask(i) & groupbit) { @@ -247,7 +248,7 @@ void GroupKokkos::angmom(int igroup, double *xcm, double *lmom) auto d_mass = atomKK->k_mass.template view(); auto d_type = atomKK->k_type.template view(); - atomKK->sync(ExecutionSpaceFromDevice::space,X_MASK|V_MASK|MASK_MASK|IMAGE_MASK|TYPE_MASK); + atomKK->sync(execution_space,X_MASK|V_MASK|MASK_MASK|IMAGE_MASK|TYPE_MASK); atomKK->k_mass.template sync(); Kokkos::parallel_reduce(atom->nlocal, KOKKOS_LAMBDA(const int i, double &l_px, double &l_py, double &l_pz) { @@ -297,7 +298,7 @@ void GroupKokkos::inertia(int igroup, double *xcm, double itensor[3] if (atomKK->rmass) { auto d_rmass = atomKK->k_rmass.template view(); - atomKK->sync(ExecutionSpaceFromDevice::space,X_MASK|MASK_MASK|IMAGE_MASK|RMASS_MASK); + atomKK->sync(execution_space,X_MASK|MASK_MASK|IMAGE_MASK|RMASS_MASK); Kokkos::parallel_reduce(atom->nlocal, KOKKOS_LAMBDA(const int i, double &l_i00, double &l_i11, double &l_i22, double &l_i01, double &l_i12, double &l_i02) { if (d_mask(i) & groupbit) { @@ -323,7 +324,7 @@ void GroupKokkos::inertia(int igroup, double *xcm, double itensor[3] auto d_mass = atomKK->k_mass.template view(); auto d_type = atomKK->k_type.template view(); - atomKK->sync(ExecutionSpaceFromDevice::space,X_MASK|MASK_MASK|IMAGE_MASK|TYPE_MASK); + atomKK->sync(execution_space,X_MASK|MASK_MASK|IMAGE_MASK|TYPE_MASK); atomKK->k_mass.template sync(); Kokkos::parallel_reduce(atom->nlocal, KOKKOS_LAMBDA(const int i, double &l_i00, double &l_i11, double &l_i22, double &l_i01, double &l_i12, double &l_i02) { diff --git a/src/KOKKOS/group_kokkos.h b/src/KOKKOS/group_kokkos.h index a38187db10..f23023b17c 100644 --- a/src/KOKKOS/group_kokkos.h +++ b/src/KOKKOS/group_kokkos.h @@ -28,6 +28,9 @@ class GroupKokkos : public Group { void vcm(int, double, double *); // center-of-mass velocity of group void angmom(int, double *, double *); // angular momentum of group void inertia(int, double *, double[3][3]); // inertia tensor + + private: + ExecutionSpace execution_space; }; } // namespace LAMMPS_NS