Small change to simplify code
This commit is contained in:
@ -30,6 +30,7 @@ template<class DeviceType>
|
||||
GroupKokkos<DeviceType>::GroupKokkos(LAMMPS *lmp) : Group(lmp)
|
||||
{
|
||||
atomKK = (AtomKokkos *)atom;
|
||||
execution_space = ExecutionSpaceFromDevice<DeviceType>::space;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
@ -51,7 +52,7 @@ double GroupKokkos<DeviceType>::mass(int igroup)
|
||||
if (atomKK->rmass) {
|
||||
|
||||
auto d_rmass = atomKK->k_rmass.template view<DeviceType>();
|
||||
atomKK->sync(ExecutionSpaceFromDevice<DeviceType>::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<DeviceType>::mass(int igroup)
|
||||
|
||||
auto d_mass = atomKK->k_mass.template view<DeviceType>();
|
||||
auto d_type = atomKK->k_type.template view<DeviceType>();
|
||||
atomKK->sync(ExecutionSpaceFromDevice<DeviceType>::space,MASK_MASK|TYPE_MASK);
|
||||
atomKK->sync(execution_space,MASK_MASK|TYPE_MASK);
|
||||
atomKK->k_mass.template sync<DeviceType>();
|
||||
|
||||
Kokkos::parallel_reduce(atom->nlocal, KOKKOS_LAMBDA(const int i, double &l_one) {
|
||||
@ -97,7 +98,7 @@ void GroupKokkos<DeviceType>::xcm(int igroup, double masstotal, double *xcm)
|
||||
if (atomKK->rmass) {
|
||||
|
||||
auto d_rmass = atomKK->k_rmass.template view<DeviceType>();
|
||||
atomKK->sync(ExecutionSpaceFromDevice<DeviceType>::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<DeviceType>::xcm(int igroup, double masstotal, double *xcm)
|
||||
|
||||
auto d_mass = atomKK->k_mass.template view<DeviceType>();
|
||||
auto d_type = atomKK->k_type.template view<DeviceType>();
|
||||
atomKK->sync(ExecutionSpaceFromDevice<DeviceType>::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<DeviceType>();
|
||||
|
||||
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<DeviceType>::vcm(int igroup, double masstotal, double *vcm)
|
||||
if (atomKK->rmass) {
|
||||
|
||||
auto d_rmass = atomKK->k_rmass.template view<DeviceType>();
|
||||
atomKK->sync(ExecutionSpaceFromDevice<DeviceType>::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<DeviceType>::vcm(int igroup, double masstotal, double *vcm)
|
||||
|
||||
auto d_mass = atomKK->k_mass.template view<DeviceType>();
|
||||
auto d_type = atomKK->k_type.template view<DeviceType>();
|
||||
atomKK->sync(ExecutionSpaceFromDevice<DeviceType>::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<DeviceType>();
|
||||
|
||||
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<DeviceType>::angmom(int igroup, double *xcm, double *lmom)
|
||||
if (atomKK->rmass) {
|
||||
|
||||
auto d_rmass = atomKK->k_rmass.template view<DeviceType>();
|
||||
atomKK->sync(ExecutionSpaceFromDevice<DeviceType>::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<DeviceType>::angmom(int igroup, double *xcm, double *lmom)
|
||||
|
||||
auto d_mass = atomKK->k_mass.template view<DeviceType>();
|
||||
auto d_type = atomKK->k_type.template view<DeviceType>();
|
||||
atomKK->sync(ExecutionSpaceFromDevice<DeviceType>::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<DeviceType>();
|
||||
|
||||
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<DeviceType>::inertia(int igroup, double *xcm, double itensor[3]
|
||||
if (atomKK->rmass) {
|
||||
|
||||
auto d_rmass = atomKK->k_rmass.template view<DeviceType>();
|
||||
atomKK->sync(ExecutionSpaceFromDevice<DeviceType>::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<DeviceType>::inertia(int igroup, double *xcm, double itensor[3]
|
||||
|
||||
auto d_mass = atomKK->k_mass.template view<DeviceType>();
|
||||
auto d_type = atomKK->k_type.template view<DeviceType>();
|
||||
atomKK->sync(ExecutionSpaceFromDevice<DeviceType>::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<DeviceType>();
|
||||
|
||||
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) {
|
||||
|
||||
@ -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
|
||||
|
||||
Reference in New Issue
Block a user