From c5565a4e02d5681736c3f64acb42776df8be6572 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Thu, 14 Apr 2022 13:16:44 -0600 Subject: [PATCH] Small tweaks --- src/KOKKOS/pair_sw_kokkos.cpp | 58 ++------------------------ src/KOKKOS/pair_sw_kokkos.h | 4 -- src/KOKKOS/pair_tersoff_kokkos.cpp | 3 -- src/KOKKOS/pair_tersoff_mod_kokkos.cpp | 4 -- src/KOKKOS/pair_tersoff_zbl_kokkos.cpp | 6 +-- 5 files changed, 5 insertions(+), 70 deletions(-) diff --git a/src/KOKKOS/pair_sw_kokkos.cpp b/src/KOKKOS/pair_sw_kokkos.cpp index e6560c8643..be0eb9f338 100644 --- a/src/KOKKOS/pair_sw_kokkos.cpp +++ b/src/KOKKOS/pair_sw_kokkos.cpp @@ -202,6 +202,7 @@ template KOKKOS_INLINE_FUNCTION void PairSWKokkos::operator()(TagPairSWComputeShortNeigh, const int& ii) const { const int i = d_ilist[ii]; + const int itype = d_map[type[i]]; const X_FLOAT xtmp = x(i,0); const X_FLOAT ytmp = x(i,1); const X_FLOAT ztmp = x(i,2); @@ -211,13 +212,15 @@ void PairSWKokkos::operator()(TagPairSWComputeShortNeigh, const int& for (int jj = 0; jj < jnum; jj++) { int j = d_neighbors(i,jj); j &= NEIGHMASK; + const int jtype = d_map[type[j]]; const X_FLOAT delx = xtmp - x(j,0); const X_FLOAT dely = ytmp - x(j,1); const X_FLOAT delz = ztmp - x(j,2); const F_FLOAT rsq = delx*delx + dely*dely + delz*delz; - if (rsq < cutmax*cutmax) { + const int ijparam = d_elem3param(itype,jtype,jtype); + if (rsq < d_params[ijparam].cutsq) { d_neighbors_short(ii,inside) = j; inside++; } @@ -258,7 +261,6 @@ void PairSWKokkos::operator()(TagPairSWCompute, co for (int jj = 0; jj < jnum; jj++) { int j = d_neighbors_short(ii,jj); - j &= NEIGHMASK; const tagint jtag = tag[j]; if (itag > jtag) { @@ -279,7 +281,6 @@ void PairSWKokkos::operator()(TagPairSWCompute, co const F_FLOAT rsq = delx*delx + dely*dely + delz*delz; const int ijparam = d_elem3param(itype,jtype,jtype); - if (rsq >= d_params[ijparam].cutsq) continue; twobody(d_params[ijparam],rsq,fpair,eflag,evdwl); @@ -300,14 +301,12 @@ void PairSWKokkos::operator()(TagPairSWCompute, co for (int jj = 0; jj < jnumm1; jj++) { int j = d_neighbors_short(ii,jj); - j &= NEIGHMASK; const int jtype = d_map[type[j]]; const int ijparam = d_elem3param(itype,jtype,jtype); delr1[0] = x(j,0) - xtmp; delr1[1] = x(j,1) - ytmp; delr1[2] = x(j,2) - ztmp; const F_FLOAT rsq1 = delr1[0]*delr1[0] + delr1[1]*delr1[1] + delr1[2]*delr1[2]; - if (rsq1 >= d_params[ijparam].cutsq) continue; F_FLOAT fxtmpj = 0.0; F_FLOAT fytmpj = 0.0; @@ -315,7 +314,6 @@ void PairSWKokkos::operator()(TagPairSWCompute, co for (int kk = jj+1; kk < jnum; kk++) { int k = d_neighbors_short(ii,kk); - k &= NEIGHMASK; const int ktype = d_map[type[k]]; const int ikparam = d_elem3param(itype,ktype,ktype); const int ijkparam = d_elem3param(itype,jtype,ktype); @@ -325,8 +323,6 @@ void PairSWKokkos::operator()(TagPairSWCompute, co delr2[2] = x(k,2) - ztmp; const F_FLOAT rsq2 = delr2[0]*delr2[0] + delr2[1]*delr2[1] + delr2[2]*delr2[2]; - if (rsq2 >= d_params[ikparam].cutsq) continue; - threebody_kk(d_params[ijparam],d_params[ikparam],d_params[ijkparam], rsq1,rsq2,delr1,delr2,fj,fk,eflag,evdwl); @@ -526,52 +522,6 @@ void PairSWKokkos::threebody_kk(const Param& paramij, const Param& p /* ---------------------------------------------------------------------- */ -template -KOKKOS_INLINE_FUNCTION -void PairSWKokkos::threebodyj(const Param& paramij, const Param& paramik, const Param& paramijk, - const F_FLOAT& rsq1, const F_FLOAT& rsq2, F_FLOAT *delr1, F_FLOAT *delr2, F_FLOAT *fj) const -{ - F_FLOAT r1,rinvsq1,rainv1,gsrainv1,gsrainvsq1,expgsrainv1; - F_FLOAT r2, rainv2, gsrainv2, expgsrainv2; - F_FLOAT rinv12,cs,delcs,delcssq,facexp,facrad,frad1; - F_FLOAT facang,facang12,csfacang,csfac1; - - r1 = sqrt(rsq1); - rinvsq1 = 1.0/rsq1; - rainv1 = 1.0/(r1 - paramij.cut); - gsrainv1 = paramij.sigma_gamma * rainv1; - gsrainvsq1 = gsrainv1*rainv1/r1; - expgsrainv1 = exp(gsrainv1); - - r2 = sqrt(rsq2); - rainv2 = 1.0/(r2 - paramik.cut); - gsrainv2 = paramik.sigma_gamma * rainv2; - expgsrainv2 = exp(gsrainv2); - - rinv12 = 1.0/(r1*r2); - cs = (delr1[0]*delr2[0] + delr1[1]*delr2[1] + delr1[2]*delr2[2]) * rinv12; - delcs = cs - paramijk.costheta; - delcssq = delcs*delcs; - - facexp = expgsrainv1*expgsrainv2; - - // facrad = sqrt(paramij.lambda_epsilon*paramik.lambda_epsilon) * - // facexp*delcssq; - - facrad = paramijk.lambda_epsilon * facexp*delcssq; - frad1 = facrad*gsrainvsq1; - facang = paramijk.lambda_epsilon2 * facexp*delcs; - facang12 = rinv12*facang; - csfacang = cs*facang; - csfac1 = rinvsq1*csfacang; - - fj[0] = delr1[0]*(frad1+csfac1)-delr2[0]*facang12; - fj[1] = delr1[1]*(frad1+csfac1)-delr2[1]*facang12; - fj[2] = delr1[2]*(frad1+csfac1)-delr2[2]*facang12; -} - -/* ---------------------------------------------------------------------- */ - template template KOKKOS_INLINE_FUNCTION diff --git a/src/KOKKOS/pair_sw_kokkos.h b/src/KOKKOS/pair_sw_kokkos.h index 0ae04d4e07..2099e98ed0 100644 --- a/src/KOKKOS/pair_sw_kokkos.h +++ b/src/KOKKOS/pair_sw_kokkos.h @@ -99,10 +99,6 @@ class PairSWKokkos : public PairSW { void threebody_kk(const Param&, const Param&, const Param&, const F_FLOAT&, const F_FLOAT&, F_FLOAT *, F_FLOAT *, F_FLOAT *, F_FLOAT *, const int&, F_FLOAT&) const; - KOKKOS_INLINE_FUNCTION - void threebodyj(const Param&, const Param&, const Param&, const F_FLOAT&, const F_FLOAT&, F_FLOAT *, F_FLOAT *, - F_FLOAT *) const; - typename AT::t_x_array_randomread x; typename AT::t_f_array f; typename AT::t_tagint_1d tag; diff --git a/src/KOKKOS/pair_tersoff_kokkos.cpp b/src/KOKKOS/pair_tersoff_kokkos.cpp index 95800c54f7..3b3770f6ad 100644 --- a/src/KOKKOS/pair_tersoff_kokkos.cpp +++ b/src/KOKKOS/pair_tersoff_kokkos.cpp @@ -343,7 +343,6 @@ void PairTersoffKokkos::operator()(TagPairTersoffCompute::operator()(TagPairTersoffCompute::operator()(TagPairTersoffCompute::operator()(TagPairTersoffMODCompute::operator()(TagPairTersoffMODCompute::operator()(TagPairTersoffMODCompute::operator()(TagPairTersoffMODCompute::~PairTersoffZBLKokkos() template void PairTersoffZBLKokkos::coeff(int narg, char **arg) { - PairTersoff::coeff(narg,arg); + PairTersoffZBL::coeff(narg,arg); // sync map @@ -344,7 +344,6 @@ void PairTersoffZBLKokkos::operator()(TagPairTersoffZBLCompute::operator()(TagPairTersoffZBLCompute::operator()(TagPairTersoffZBLCompute::operator()(TagPairTersoffZBLCompute