From 8a0dac90ca1c850a4017410fd0e50d26f713a393 Mon Sep 17 00:00:00 2001 From: Joel Clemmer Date: Sun, 29 Nov 2020 19:57:14 -0700 Subject: [PATCH] Removing redundant k variables in npair --- src/USER-OMP/npair_full_multi2_omp.cpp | 21 ++++++------- .../npair_half_multi2_newtoff_omp.cpp | 24 +++++++------- src/USER-OMP/npair_half_multi2_newton_omp.cpp | 28 +++++++---------- .../npair_half_multi2_newton_tri_omp.cpp | 26 +++++++--------- .../npair_half_size_multi2_newtoff_omp.cpp | 24 +++++++------- .../npair_half_size_multi2_newton_omp.cpp | 31 ++++++++----------- .../npair_half_size_multi2_newton_tri_omp.cpp | 25 +++++++-------- src/comm.cpp | 3 ++ src/npair_full_multi2.cpp | 21 ++++++------- src/npair_half_multi2_newton.cpp | 28 +++++++---------- src/npair_half_multi2_newton_tri.cpp | 26 +++++++--------- src/npair_half_size_multi2_newtoff.cpp | 24 +++++++------- src/npair_half_size_multi2_newton.cpp | 31 ++++++++----------- src/npair_half_size_multi2_newton_tri.cpp | 25 +++++++-------- 14 files changed, 152 insertions(+), 185 deletions(-) diff --git a/src/USER-OMP/npair_full_multi2_omp.cpp b/src/USER-OMP/npair_full_multi2_omp.cpp index 8e025806c9..33ac289375 100755 --- a/src/USER-OMP/npair_full_multi2_omp.cpp +++ b/src/USER-OMP/npair_full_multi2_omp.cpp @@ -46,7 +46,7 @@ void NPairFullMulti2Omp::build(NeighList *list) #endif NPAIR_OMP_SETUP(nlocal); - int i,j,k,n,itype,jtype,ktype,ibin,kbin,which,ns,imol,iatom; + int i,j,k,n,itype,jtype,ibin,jbin,which,ns,imol,iatom; tagint tagprev; double xtmp,ytmp,ztmp,delx,dely,delz,rsq; int *neighptr,*s; @@ -94,22 +94,21 @@ void NPairFullMulti2Omp::build(NeighList *list) // skip i = j ibin = atom2bin_multi2[itype][i]; - for (ktype = 1; ktype <= atom->ntypes; ktype++) { - if (itype == ktype) { - kbin = ibin; + for (jtype = 1; jtype <= atom->ntypes; jtype++) { + if (itype == jtype) { + jbin = ibin; } else { - // Locate i in ktype bin - kbin = coord2bin(x[i], ktype); + // Locate i in jtype bin + jbin = coord2bin(x[i], jtype); } - s = stencil_multi2[itype][ktype]; - ns = nstencil_multi2[itype][ktype]; + s = stencil_multi2[itype][jtype]; + ns = nstencil_multi2[itype][jtype]; for (k = 0; k < ns; k++) { - js = binhead_multi2[ktype][kbin + s[k]]; - for (j = js; j >= 0; j = bins_multi2[ktype][j]) { + js = binhead_multi2[jtype][jbin + s[k]]; + for (j = js; j >= 0; j = bins_multi2[jtype][j]) { if (i == j) continue; - jtype = type[j]; if (exclude && exclusion(i,j,itype,jtype,mask,molecule)) continue; delx = xtmp - x[j][0]; diff --git a/src/USER-OMP/npair_half_multi2_newtoff_omp.cpp b/src/USER-OMP/npair_half_multi2_newtoff_omp.cpp index 44689e1efc..f440865bc7 100755 --- a/src/USER-OMP/npair_half_multi2_newtoff_omp.cpp +++ b/src/USER-OMP/npair_half_multi2_newtoff_omp.cpp @@ -48,7 +48,7 @@ void NPairHalfMulti2NewtoffOmp::build(NeighList *list) #endif NPAIR_OMP_SETUP(nlocal); - int i,j,k,n,itype,jtype,ktype,ibin,kbin,which,ns,imol,iatom; + int i,j,k,n,itype,jtype,ibin,jbin,which,ns,imol,iatom; tagint tagprev; double xtmp,ytmp,ztmp,delx,dely,delz,rsq; int *neighptr,*s; @@ -98,23 +98,21 @@ void NPairHalfMulti2NewtoffOmp::build(NeighList *list) // stores own/ghost pairs on both procs ibin = atom2bin_multi2[itype][i]; - for (ktype = 1; ktype <= atom->ntypes; ktype++) { - if (itype == ktype) { - kbin = ibin; + for (jtype = 1; jtype <= atom->ntypes; jtype++) { + if (itype == jtype) { + jbin = ibin; } else { - // Locate i in ktype bin - kbin = coord2bin(x[i], ktype); + // Locate i in jtype bin + jbin = coord2bin(x[i], jtype); } - s = stencil_multi2[itype][ktype]; - ns = nstencil_multi2[itype][ktype]; + s = stencil_multi2[itype][jtype]; + ns = nstencil_multi2[itype][jtype]; for (k = 0; k < ns; k++) { - js = binhead_multi2[ktype][kbin + s[k]]; - for (j = js; j >=0; j = bins_multi2[ktype][j]) { + js = binhead_multi2[jtype][jbin + s[k]]; + for (j = js; j >=0; j = bins_multi2[jtype][j]) { if (j <= i) continue; - - jtype = type[j]; - + if (exclude && exclusion(i,j,itype,jtype,mask,molecule)) continue; delx = xtmp - x[j][0]; diff --git a/src/USER-OMP/npair_half_multi2_newton_omp.cpp b/src/USER-OMP/npair_half_multi2_newton_omp.cpp index cc86410fa9..4035a44a8e 100755 --- a/src/USER-OMP/npair_half_multi2_newton_omp.cpp +++ b/src/USER-OMP/npair_half_multi2_newton_omp.cpp @@ -47,7 +47,7 @@ void NPairHalfMulti2NewtonOmp::build(NeighList *list) #endif NPAIR_OMP_SETUP(nlocal); - int i,j,k,n,itype,jtype,ktype,ibin,kbin,which,ns,imol,iatom; + int i,j,k,n,itype,jtype,ibin,jbin,which,ns,imol,iatom; tagint tagprev; double xtmp,ytmp,ztmp,delx,dely,delz,rsq; int *neighptr,*s; @@ -96,8 +96,8 @@ void NPairHalfMulti2NewtonOmp::build(NeighList *list) ibin = atom2bin_multi2[itype][i]; - for (ktype = 1; ktype <= atom->ntypes; ktype++) { - if (itype == ktype) { + for (jtype = 1; jtype <= atom->ntypes; jtype++) { + if (itype == jtype) { // own bin ... js = bins_multi2[itype][i]; @@ -110,7 +110,6 @@ void NPairHalfMulti2NewtonOmp::build(NeighList *list) } } - jtype = type[j]; if (exclude && exclusion(i,j,itype,jtype,mask,molecule)) continue; delx = xtmp - x[j][0]; @@ -144,7 +143,6 @@ void NPairHalfMulti2NewtonOmp::build(NeighList *list) js = binhead_multi2[itype][ibin + s[k]]; for (j = js; j >= 0; j = bins_multi2[itype][j]) { - jtype = type[j]; if (exclude && exclusion(i,j,itype,jtype,mask,molecule)) continue; delx = xtmp - x[j][0]; @@ -170,14 +168,14 @@ void NPairHalfMulti2NewtonOmp::build(NeighList *list) } } } else { - // smaller -> larger: locate i in the ktype bin structure + // smaller -> larger: locate i in the jtype bin structure - kbin = coord2bin(x[i], ktype); + jbin = coord2bin(x[i], jtype); // if same size, use half list so check own bin - if(cutneighsq[itype][itype] == cutneighsq[ktype][ktype]){ - js = binhead_multi2[ktype][kbin]; - for (j = js; j >= 0; j = bins_multi2[ktype][j]) { + if(cutneighsq[itype][itype] == cutneighsq[jtype][jtype]){ + js = binhead_multi2[jtype][jbin]; + for (j = js; j >= 0; j = bins_multi2[jtype][j]) { if (j >= nlocal) { if (x[j][2] < ztmp) continue; if (x[j][2] == ztmp) { @@ -186,7 +184,6 @@ void NPairHalfMulti2NewtonOmp::build(NeighList *list) } } - jtype = type[j]; if (exclude && exclusion(i,j,itype,jtype,mask,molecule)) continue; delx = xtmp - x[j][0]; @@ -212,14 +209,13 @@ void NPairHalfMulti2NewtonOmp::build(NeighList *list) } } - s = stencil_multi2[itype][ktype]; - ns = nstencil_multi2[itype][ktype]; + s = stencil_multi2[itype][jtype]; + ns = nstencil_multi2[itype][jtype]; for (k = 0; k < ns; k++) { - js = binhead_multi2[ktype][kbin + s[k]]; - for (j = js; j >= 0; j = bins_multi2[ktype][j]) { + js = binhead_multi2[jtype][jbin + s[k]]; + for (j = js; j >= 0; j = bins_multi2[jtype][j]) { - jtype = type[j]; if (exclude && exclusion(i,j,itype,jtype,mask,molecule)) continue; delx = xtmp - x[j][0]; diff --git a/src/USER-OMP/npair_half_multi2_newton_tri_omp.cpp b/src/USER-OMP/npair_half_multi2_newton_tri_omp.cpp index 707c247607..25f49a5b09 100755 --- a/src/USER-OMP/npair_half_multi2_newton_tri_omp.cpp +++ b/src/USER-OMP/npair_half_multi2_newton_tri_omp.cpp @@ -48,7 +48,7 @@ void NPairHalfMulti2NewtonTriOmp::build(NeighList *list) #endif NPAIR_OMP_SETUP(nlocal); - int i,j,k,n,itype,jtype,ktype,ibin,kbin,which,ns,imol,iatom; + int i,j,k,n,itype,jtype,ibin,jbin,which,ns,imol,iatom; tagint tagprev; double xtmp,ytmp,ztmp,delx,dely,delz,rsq; int *neighptr,*s; @@ -97,9 +97,9 @@ void NPairHalfMulti2NewtonTriOmp::build(NeighList *list) ibin = atom2bin_multi2[itype][i]; - for (ktype = 1; ktype <= atom->ntypes; ktype++) { + for (jtype = 1; jtype <= atom->ntypes; jtype++) { - if (itype == ktype) { + if (itype == jtype) { // loop over all atoms in other bins in stencil, store every pair // skip if i,j neighbor cutoff is less than bin distance @@ -117,7 +117,7 @@ void NPairHalfMulti2NewtonTriOmp::build(NeighList *list) if (x[j][0] == xtmp && j <= i) continue; } } - jtype = type[j]; + if (exclude && exclusion(i,j,itype,jtype,mask,molecule)) continue; delx = xtmp - x[j][0]; @@ -143,20 +143,18 @@ void NPairHalfMulti2NewtonTriOmp::build(NeighList *list) } } } else { - // smaller -> larger: locate i in the ktype bin structure + // smaller -> larger: locate i in the jtype bin structure - kbin = coord2bin(x[i], ktype); - s = stencil_multi2[itype][ktype]; - ns = nstencil_multi2[itype][ktype]; + jbin = coord2bin(x[i], jtype); + s = stencil_multi2[itype][jtype]; + ns = nstencil_multi2[itype][jtype]; for (k = 0; k < ns; k++) { - js = binhead_multi2[ktype][kbin + s[k]]; - for (j = js; j >= 0; j = bins_multi2[ktype][j]) { - - jtype = type[j]; - + js = binhead_multi2[jtype][jbin + s[k]]; + for (j = js; j >= 0; j = bins_multi2[jtype][j]) { + // if same size, use half stencil - if(cutneighsq[itype][itype] == cutneighsq[ktype][ktype]){ + if(cutneighsq[itype][itype] == cutneighsq[jtype][jtype]){ if (x[j][2] < ztmp) continue; if (x[j][2] == ztmp) { if (x[j][1] < ytmp) continue; diff --git a/src/USER-OMP/npair_half_size_multi2_newtoff_omp.cpp b/src/USER-OMP/npair_half_size_multi2_newtoff_omp.cpp index d4578985ed..8e95b2c5b8 100755 --- a/src/USER-OMP/npair_half_size_multi2_newtoff_omp.cpp +++ b/src/USER-OMP/npair_half_size_multi2_newtoff_omp.cpp @@ -46,7 +46,7 @@ void NPairHalfSizeMulti2NewtoffOmp::build(NeighList *list) #endif NPAIR_OMP_SETUP(nlocal); - int i,j,k,n,itype,jtype,ktype,ibin,kbin,ns; + int i,j,k,n,itype,jtype,ibin,jbin,ns; double xtmp,ytmp,ztmp,delx,dely,delz,rsq; double radi,radsum,cutdistsq; int *neighptr,*s; @@ -86,23 +86,21 @@ void NPairHalfSizeMulti2NewtoffOmp::build(NeighList *list) // stores own/ghost pairs on both procs ibin = atom2bin_multi2[itype][i]; - for (ktype = 1; ktype <= atom->ntypes; ktype++) { - if (itype == ktype) { - kbin = ibin; + for (jtype = 1; jtype <= atom->ntypes; jtype++) { + if (itype == jtype) { + jbin = ibin; } else { - // Locate i in ktype bin - kbin = coord2bin(x[i], ktype); + // Locate i in jtype bin + jbin = coord2bin(x[i], jtype); } - s = stencil_multi2[itype][ktype]; - ns = nstencil_multi2[itype][ktype]; + s = stencil_multi2[itype][jtype]; + ns = nstencil_multi2[itype][jtype]; for (k = 0; k < ns; k++) { - js = binhead_multi2[ktype][kbin + s[k]]; - for (j = js; j >=0; j = bins_multi2[ktype][j]) { + js = binhead_multi2[jtype][jbin + s[k]]; + for (j = js; j >=0; j = bins_multi2[jtype][j]) { if (j <= i) continue; - - jtype = type[j]; - + if (exclude && exclusion(i,j,itype,jtype,mask,molecule)) continue; delx = xtmp - x[j][0]; diff --git a/src/USER-OMP/npair_half_size_multi2_newton_omp.cpp b/src/USER-OMP/npair_half_size_multi2_newton_omp.cpp index 5d8080f913..ae490fe837 100755 --- a/src/USER-OMP/npair_half_size_multi2_newton_omp.cpp +++ b/src/USER-OMP/npair_half_size_multi2_newton_omp.cpp @@ -45,7 +45,7 @@ void NPairHalfSizeMulti2NewtonOmp::build(NeighList *list) #endif NPAIR_OMP_SETUP(nlocal); - int i,j,k,n,itype,jtype,ktype,ibin,kbin,ns; + int i,j,k,n,itype,jtype,ibin,jbin,ns; double xtmp,ytmp,ztmp,delx,dely,delz,rsq; double radi,radsum,cutdistsq; int *neighptr,*s; @@ -84,9 +84,9 @@ void NPairHalfSizeMulti2NewtonOmp::build(NeighList *list) ibin = atom2bin_multi2[itype][i]; - for (ktype = 1; ktype <= atom->ntypes; ktype++) { + for (jtype = 1; jtype <= atom->ntypes; jtype++) { - if (itype == ktype) { + if (itype == jtype) { // own bin ... js = bins_multi2[itype][i]; @@ -99,7 +99,6 @@ void NPairHalfSizeMulti2NewtonOmp::build(NeighList *list) } } - jtype = type[j]; if (exclude && exclusion(i,j,itype,jtype,mask,molecule)) continue; delx = xtmp - x[j][0]; @@ -125,7 +124,6 @@ void NPairHalfSizeMulti2NewtonOmp::build(NeighList *list) for (k = 0; k < ns; k++) { js = binhead_multi2[itype][ibin + s[k]]; for (j = js; j >= 0; j = bins_multi2[itype][j]) { - jtype = type[j]; if (exclude && exclusion(i,j,itype,jtype,mask,molecule)) continue; @@ -145,13 +143,13 @@ void NPairHalfSizeMulti2NewtonOmp::build(NeighList *list) } } } else { - // smaller -> larger: locate i in the ktype bin structure - kbin = coord2bin(x[i], ktype); + // smaller -> larger: locate i in the jtype bin structure + jbin = coord2bin(x[i], jtype); // if same size, use half list so check own bin - if(cutneighsq[itype][itype] == cutneighsq[ktype][ktype]){ - js = binhead_multi2[ktype][kbin]; - for (j = js; j >= 0; j = bins_multi2[ktype][j]) { + if(cutneighsq[itype][itype] == cutneighsq[jtype][jtype]){ + js = binhead_multi2[jtype][jbin]; + for (j = js; j >= 0; j = bins_multi2[jtype][j]) { if (j >= nlocal) { if (x[j][2] < ztmp) continue; if (x[j][2] == ztmp) { @@ -160,7 +158,6 @@ void NPairHalfSizeMulti2NewtonOmp::build(NeighList *list) } } - jtype = type[j]; if (exclude && exclusion(i,j,itype,jtype,mask,molecule)) continue; delx = xtmp - x[j][0]; @@ -181,14 +178,12 @@ void NPairHalfSizeMulti2NewtonOmp::build(NeighList *list) // Check other stencils - s = stencil_multi2[itype][ktype]; - ns = nstencil_multi2[itype][ktype]; + s = stencil_multi2[itype][jtype]; + ns = nstencil_multi2[itype][jtype]; for (k = 0; k < ns; k++) { - js = binhead_multi2[ktype][kbin + s[k]]; - for (j = js; j >= 0; j = bins_multi2[ktype][j]) { - - jtype = type[j]; - + js = binhead_multi2[jtype][jbin + s[k]]; + for (j = js; j >= 0; j = bins_multi2[jtype][j]) { + if (exclude && exclusion(i,j,itype,jtype,mask,molecule)) continue; delx = xtmp - x[j][0]; diff --git a/src/USER-OMP/npair_half_size_multi2_newton_tri_omp.cpp b/src/USER-OMP/npair_half_size_multi2_newton_tri_omp.cpp index 12365ff27c..c1dea8ca79 100755 --- a/src/USER-OMP/npair_half_size_multi2_newton_tri_omp.cpp +++ b/src/USER-OMP/npair_half_size_multi2_newton_tri_omp.cpp @@ -46,7 +46,7 @@ void NPairHalfSizeMulti2NewtonTriOmp::build(NeighList *list) #endif NPAIR_OMP_SETUP(nlocal); - int i,j,k,n,itype,jtype,ktype,ibin,kbin,ns; + int i,j,k,n,itype,jtype,ibin,jbin,ns; double xtmp,ytmp,ztmp,delx,dely,delz,rsq; double radi,radsum,cutdistsq; int *neighptr,*s; @@ -85,9 +85,9 @@ void NPairHalfSizeMulti2NewtonTriOmp::build(NeighList *list) ibin = atom2bin_multi2[itype][i]; - for (ktype = 1; ktype <= atom->ntypes; ktype++) { + for (jtype = 1; jtype <= atom->ntypes; jtype++) { - if (itype == ktype) { + if (itype == jtype) { // loop over all atoms in other bins in stencil, store every pair // skip if i,j neighbor cutoff is less than bin distance @@ -105,7 +105,6 @@ void NPairHalfSizeMulti2NewtonTriOmp::build(NeighList *list) if (x[j][0] == xtmp && j <= i) continue; } } - jtype = type[j]; if (exclude && exclusion(i,j,itype,jtype,mask,molecule)) continue; @@ -125,20 +124,18 @@ void NPairHalfSizeMulti2NewtonTriOmp::build(NeighList *list) } } } else { - // smaller -> larger: locate i in the ktype bin structure + // smaller -> larger: locate i in the jtype bin structure - kbin = coord2bin(x[i], ktype); + jbin = coord2bin(x[i], jtype); - s = stencil_multi2[itype][ktype]; - ns = nstencil_multi2[itype][ktype]; + s = stencil_multi2[itype][jtype]; + ns = nstencil_multi2[itype][jtype]; for (k = 0; k < ns; k++) { - js = binhead_multi2[ktype][kbin + s[k]]; - for (j = js; j >= 0; j = bins_multi2[ktype][j]) { - - jtype = type[j]; - + js = binhead_multi2[jtype][jbin + s[k]]; + for (j = js; j >= 0; j = bins_multi2[jtype][j]) { + // if same size, use half stencil - if(cutneighsq[itype][itype] == cutneighsq[ktype][ktype]){ + if(cutneighsq[itype][itype] == cutneighsq[jtype][jtype]){ if (x[j][2] < ztmp) continue; if (x[j][2] == ztmp) { if (x[j][1] < ytmp) continue; diff --git a/src/comm.cpp b/src/comm.cpp index 7930b08f87..2e1192e150 100644 --- a/src/comm.cpp +++ b/src/comm.cpp @@ -245,6 +245,9 @@ void Comm::init() // Can't used multi2 communication with Newton off // TODO: need to somehow restrict this option with full neighbor lists // CANNOT use multi2 communication with full nlist + // Could remove NP_NEWTON from npair_full_*multi2*, but could be cryptic + // Also could be cases where you want newton off (hybrid) but don't use multi2 comm + // Could add check on neighbor build, if full and comm->multi2 error... if (force->newton == 0 && multi2) error->all(FLERR,"Cannot use multi2 communication with Newton off"); } diff --git a/src/npair_full_multi2.cpp b/src/npair_full_multi2.cpp index 4fbdc6148b..8af77aea22 100644 --- a/src/npair_full_multi2.cpp +++ b/src/npair_full_multi2.cpp @@ -35,7 +35,7 @@ NPairFullMulti2::NPairFullMulti2(LAMMPS *lmp) : NPair(lmp) {} void NPairFullMulti2::build(NeighList *list) { - int i,j,k,n,itype,jtype,ktype,ibin,kbin,which,ns,imol,iatom,moltemplate; + int i,j,k,n,itype,jtype,ibin,jbin,which,ns,imol,iatom,moltemplate; tagint tagprev; double xtmp,ytmp,ztmp,delx,dely,delz,rsq; int *neighptr,*s; @@ -84,22 +84,21 @@ void NPairFullMulti2::build(NeighList *list) // skip i = j ibin = atom2bin_multi2[itype][i]; - for (ktype = 1; ktype <= atom->ntypes; ktype++) { - if (itype == ktype) { - kbin = ibin; + for (jtype = 1; jtype <= atom->ntypes; jtype++) { + if (itype == jtype) { + jbin = ibin; } else { - // Locate i in ktype bin - kbin = coord2bin(x[i], ktype); + // Locate i in jtype bin + jbin = coord2bin(x[i], jtype); } - s = stencil_multi2[itype][ktype]; - ns = nstencil_multi2[itype][ktype]; + s = stencil_multi2[itype][jtype]; + ns = nstencil_multi2[itype][jtype]; for (k = 0; k < ns; k++) { - js = binhead_multi2[ktype][kbin + s[k]]; - for (j = js; j >= 0; j = bins_multi2[ktype][j]) { + js = binhead_multi2[jtype][jbin + s[k]]; + for (j = js; j >= 0; j = bins_multi2[jtype][j]) { if (i == j) continue; - jtype = type[j]; if (exclude && exclusion(i,j,itype,jtype,mask,molecule)) continue; delx = xtmp - x[j][0]; diff --git a/src/npair_half_multi2_newton.cpp b/src/npair_half_multi2_newton.cpp index 413da06284..ee3114ec8b 100755 --- a/src/npair_half_multi2_newton.cpp +++ b/src/npair_half_multi2_newton.cpp @@ -36,7 +36,7 @@ NPairHalfMulti2Newton::NPairHalfMulti2Newton(LAMMPS *lmp) : NPair(lmp) {} void NPairHalfMulti2Newton::build(NeighList *list) { - int i,j,k,n,itype,jtype,ktype,ibin,kbin,which,ns,imol,iatom,moltemplate; + int i,j,k,n,itype,jtype,ibin,jbin,which,ns,imol,iatom,moltemplate; tagint tagprev; double xtmp,ytmp,ztmp,delx,dely,delz,rsq; int *neighptr,*s; @@ -86,8 +86,8 @@ void NPairHalfMulti2Newton::build(NeighList *list) ibin = atom2bin_multi2[itype][i]; - for (ktype = 1; ktype <= atom->ntypes; ktype++) { - if (itype == ktype) { + for (jtype = 1; jtype <= atom->ntypes; jtype++) { + if (itype == jtype) { // own bin ... js = bins_multi2[itype][i]; @@ -100,7 +100,6 @@ void NPairHalfMulti2Newton::build(NeighList *list) } } - jtype = type[j]; if (exclude && exclusion(i,j,itype,jtype,mask,molecule)) continue; delx = xtmp - x[j][0]; @@ -134,7 +133,6 @@ void NPairHalfMulti2Newton::build(NeighList *list) js = binhead_multi2[itype][ibin + s[k]]; for (j = js; j >= 0; j = bins_multi2[itype][j]) { - jtype = type[j]; if (exclude && exclusion(i,j,itype,jtype,mask,molecule)) continue; delx = xtmp - x[j][0]; @@ -160,14 +158,14 @@ void NPairHalfMulti2Newton::build(NeighList *list) } } } else { - // smaller -> larger: locate i in the ktype bin structure + // smaller -> larger: locate i in the jtype bin structure - kbin = coord2bin(x[i], ktype); + jbin = coord2bin(x[i], jtype); // if same size, use half list so check own bin - if(cutneighsq[itype][itype] == cutneighsq[ktype][ktype]){ - js = binhead_multi2[ktype][kbin]; - for (j = js; j >= 0; j = bins_multi2[ktype][j]) { + if(cutneighsq[itype][itype] == cutneighsq[jtype][jtype]){ + js = binhead_multi2[jtype][jbin]; + for (j = js; j >= 0; j = bins_multi2[jtype][j]) { if (j >= nlocal) { if (x[j][2] < ztmp) continue; if (x[j][2] == ztmp) { @@ -176,7 +174,6 @@ void NPairHalfMulti2Newton::build(NeighList *list) } } - jtype = type[j]; if (exclude && exclusion(i,j,itype,jtype,mask,molecule)) continue; delx = xtmp - x[j][0]; @@ -202,14 +199,13 @@ void NPairHalfMulti2Newton::build(NeighList *list) } } - s = stencil_multi2[itype][ktype]; - ns = nstencil_multi2[itype][ktype]; + s = stencil_multi2[itype][jtype]; + ns = nstencil_multi2[itype][jtype]; for (k = 0; k < ns; k++) { - js = binhead_multi2[ktype][kbin + s[k]]; - for (j = js; j >= 0; j = bins_multi2[ktype][j]) { + js = binhead_multi2[jtype][jbin + s[k]]; + for (j = js; j >= 0; j = bins_multi2[jtype][j]) { - jtype = type[j]; if (exclude && exclusion(i,j,itype,jtype,mask,molecule)) continue; delx = xtmp - x[j][0]; diff --git a/src/npair_half_multi2_newton_tri.cpp b/src/npair_half_multi2_newton_tri.cpp index 7970ee94a0..6c0fc35985 100755 --- a/src/npair_half_multi2_newton_tri.cpp +++ b/src/npair_half_multi2_newton_tri.cpp @@ -36,7 +36,7 @@ NPairHalfMulti2NewtonTri::NPairHalfMulti2NewtonTri(LAMMPS *lmp) : NPair(lmp) {} void NPairHalfMulti2NewtonTri::build(NeighList *list) { - int i,j,k,n,itype,jtype,ktype,ibin,kbin,which,ns,imol,iatom,moltemplate; + int i,j,k,n,itype,jtype,ibin,jbin,which,ns,imol,iatom,moltemplate; tagint tagprev; double xtmp,ytmp,ztmp,delx,dely,delz,rsq; int *neighptr,*s; @@ -86,9 +86,9 @@ void NPairHalfMulti2NewtonTri::build(NeighList *list) ibin = atom2bin_multi2[itype][i]; - for (ktype = 1; ktype <= atom->ntypes; ktype++) { + for (jtype = 1; jtype <= atom->ntypes; jtype++) { - if (itype == ktype) { + if (itype == jtype) { // loop over all atoms in other bins in stencil, store every pair // skip if i,j neighbor cutoff is less than bin distance @@ -106,7 +106,7 @@ void NPairHalfMulti2NewtonTri::build(NeighList *list) if (x[j][0] == xtmp && j <= i) continue; } } - jtype = type[j]; + if (exclude && exclusion(i,j,itype,jtype,mask,molecule)) continue; delx = xtmp - x[j][0]; @@ -132,20 +132,18 @@ void NPairHalfMulti2NewtonTri::build(NeighList *list) } } } else { - // smaller -> larger: locate i in the ktype bin structure + // smaller -> larger: locate i in the jtype bin structure - kbin = coord2bin(x[i], ktype); - s = stencil_multi2[itype][ktype]; - ns = nstencil_multi2[itype][ktype]; + jbin = coord2bin(x[i], jtype); + s = stencil_multi2[itype][jtype]; + ns = nstencil_multi2[itype][jtype]; for (k = 0; k < ns; k++) { - js = binhead_multi2[ktype][kbin + s[k]]; - for (j = js; j >= 0; j = bins_multi2[ktype][j]) { - - jtype = type[j]; - + js = binhead_multi2[jtype][jbin + s[k]]; + for (j = js; j >= 0; j = bins_multi2[jtype][j]) { + // if same size, use half stencil - if(cutneighsq[itype][itype] == cutneighsq[ktype][ktype]){ + if(cutneighsq[itype][itype] == cutneighsq[jtype][jtype]){ if (x[j][2] < ztmp) continue; if (x[j][2] == ztmp) { if (x[j][1] < ytmp) continue; diff --git a/src/npair_half_size_multi2_newtoff.cpp b/src/npair_half_size_multi2_newtoff.cpp index 0e0137a77e..efbd8f2fe4 100644 --- a/src/npair_half_size_multi2_newtoff.cpp +++ b/src/npair_half_size_multi2_newtoff.cpp @@ -36,7 +36,7 @@ NPairHalfSizeMulti2Newtoff::NPairHalfSizeMulti2Newtoff(LAMMPS *lmp) : NPair(lmp) void NPairHalfSizeMulti2Newtoff::build(NeighList *list) { - int i,j,k,n,itype,jtype,ktype,ibin,kbin,ns; + int i,j,k,n,itype,jtype,ibin,jbin,ns; double xtmp,ytmp,ztmp,delx,dely,delz,rsq; double radi,radsum,cutdistsq; int *neighptr,*s; @@ -78,23 +78,21 @@ void NPairHalfSizeMulti2Newtoff::build(NeighList *list) // stores own/ghost pairs on both procs ibin = atom2bin_multi2[itype][i]; - for (ktype = 1; ktype <= atom->ntypes; ktype++) { - if (itype == ktype) { - kbin = ibin; + for (jtype = 1; jtype <= atom->ntypes; jtype++) { + if (itype == jtype) { + jbin = ibin; } else { - // Locate i in ktype bin - kbin = coord2bin(x[i], ktype); + // Locate i in jtype bin + jbin = coord2bin(x[i], jtype); } - s = stencil_multi2[itype][ktype]; - ns = nstencil_multi2[itype][ktype]; + s = stencil_multi2[itype][jtype]; + ns = nstencil_multi2[itype][jtype]; for (k = 0; k < ns; k++) { - js = binhead_multi2[ktype][kbin + s[k]]; - for (j = js; j >=0; j = bins_multi2[ktype][j]) { + js = binhead_multi2[jtype][jbin + s[k]]; + for (j = js; j >=0; j = bins_multi2[jtype][j]) { if (j <= i) continue; - - jtype = type[j]; - + if (exclude && exclusion(i,j,itype,jtype,mask,molecule)) continue; delx = xtmp - x[j][0]; diff --git a/src/npair_half_size_multi2_newton.cpp b/src/npair_half_size_multi2_newton.cpp index 3b34b1a514..8a143124fd 100755 --- a/src/npair_half_size_multi2_newton.cpp +++ b/src/npair_half_size_multi2_newton.cpp @@ -34,7 +34,7 @@ NPairHalfSizeMulti2Newton::NPairHalfSizeMulti2Newton(LAMMPS *lmp) : NPair(lmp) { void NPairHalfSizeMulti2Newton::build(NeighList *list) { - int i,j,k,n,itype,jtype,ktype,ibin,kbin,ns,js; + int i,j,k,n,itype,jtype,ibin,jbin,ns,js; double xtmp,ytmp,ztmp,delx,dely,delz,rsq; double radi,radsum,cutdistsq; int *neighptr,*s; @@ -74,9 +74,9 @@ void NPairHalfSizeMulti2Newton::build(NeighList *list) ibin = atom2bin_multi2[itype][i]; - for (ktype = 1; ktype <= atom->ntypes; ktype++) { + for (jtype = 1; jtype <= atom->ntypes; jtype++) { - if (itype == ktype) { + if (itype == jtype) { // own bin ... js = bins_multi2[itype][i]; @@ -89,7 +89,6 @@ void NPairHalfSizeMulti2Newton::build(NeighList *list) } } - jtype = type[j]; if (exclude && exclusion(i,j,itype,jtype,mask,molecule)) continue; delx = xtmp - x[j][0]; @@ -115,7 +114,6 @@ void NPairHalfSizeMulti2Newton::build(NeighList *list) for (k = 0; k < ns; k++) { js = binhead_multi2[itype][ibin + s[k]]; for (j = js; j >= 0; j = bins_multi2[itype][j]) { - jtype = type[j]; if (exclude && exclusion(i,j,itype,jtype,mask,molecule)) continue; @@ -135,13 +133,13 @@ void NPairHalfSizeMulti2Newton::build(NeighList *list) } } } else { - // smaller -> larger: locate i in the ktype bin structure - kbin = coord2bin(x[i], ktype); + // smaller -> larger: locate i in the jtype bin structure + jbin = coord2bin(x[i], jtype); // if same size, use half list so check own bin - if(cutneighsq[itype][itype] == cutneighsq[ktype][ktype]){ - js = binhead_multi2[ktype][kbin]; - for (j = js; j >= 0; j = bins_multi2[ktype][j]) { + if(cutneighsq[itype][itype] == cutneighsq[jtype][jtype]){ + js = binhead_multi2[jtype][jbin]; + for (j = js; j >= 0; j = bins_multi2[jtype][j]) { if (j >= nlocal) { if (x[j][2] < ztmp) continue; if (x[j][2] == ztmp) { @@ -150,7 +148,6 @@ void NPairHalfSizeMulti2Newton::build(NeighList *list) } } - jtype = type[j]; if (exclude && exclusion(i,j,itype,jtype,mask,molecule)) continue; delx = xtmp - x[j][0]; @@ -171,14 +168,12 @@ void NPairHalfSizeMulti2Newton::build(NeighList *list) // Check other stencils - s = stencil_multi2[itype][ktype]; - ns = nstencil_multi2[itype][ktype]; + s = stencil_multi2[itype][jtype]; + ns = nstencil_multi2[itype][jtype]; for (k = 0; k < ns; k++) { - js = binhead_multi2[ktype][kbin + s[k]]; - for (j = js; j >= 0; j = bins_multi2[ktype][j]) { - - jtype = type[j]; - + js = binhead_multi2[jtype][jbin + s[k]]; + for (j = js; j >= 0; j = bins_multi2[jtype][j]) { + if (exclude && exclusion(i,j,itype,jtype,mask,molecule)) continue; delx = xtmp - x[j][0]; diff --git a/src/npair_half_size_multi2_newton_tri.cpp b/src/npair_half_size_multi2_newton_tri.cpp index 3a2065c36e..e5b3b414ec 100755 --- a/src/npair_half_size_multi2_newton_tri.cpp +++ b/src/npair_half_size_multi2_newton_tri.cpp @@ -34,7 +34,7 @@ NPairHalfSizeMulti2NewtonTri::NPairHalfSizeMulti2NewtonTri(LAMMPS *lmp) : NPair( void NPairHalfSizeMulti2NewtonTri::build(NeighList *list) { - int i,j,k,n,itype,jtype,ktype,ibin,kbin,ns,js; + int i,j,k,n,itype,jtype,ibin,jbin,ns,js; double xtmp,ytmp,ztmp,delx,dely,delz,rsq; double radi,radsum,cutdistsq; int *neighptr,*s; @@ -74,9 +74,9 @@ void NPairHalfSizeMulti2NewtonTri::build(NeighList *list) ibin = atom2bin_multi2[itype][i]; - for (ktype = 1; ktype <= atom->ntypes; ktype++) { + for (jtype = 1; jtype <= atom->ntypes; jtype++) { - if (itype == ktype) { + if (itype == jtype) { // loop over all atoms in other bins in stencil, store every pair // skip if i,j neighbor cutoff is less than bin distance @@ -94,7 +94,6 @@ void NPairHalfSizeMulti2NewtonTri::build(NeighList *list) if (x[j][0] == xtmp && j <= i) continue; } } - jtype = type[j]; if (exclude && exclusion(i,j,itype,jtype,mask,molecule)) continue; @@ -114,20 +113,18 @@ void NPairHalfSizeMulti2NewtonTri::build(NeighList *list) } } } else { - // smaller -> larger: locate i in the ktype bin structure + // smaller -> larger: locate i in the jtype bin structure - kbin = coord2bin(x[i], ktype); + jbin = coord2bin(x[i], jtype); - s = stencil_multi2[itype][ktype]; - ns = nstencil_multi2[itype][ktype]; + s = stencil_multi2[itype][jtype]; + ns = nstencil_multi2[itype][jtype]; for (k = 0; k < ns; k++) { - js = binhead_multi2[ktype][kbin + s[k]]; - for (j = js; j >= 0; j = bins_multi2[ktype][j]) { - - jtype = type[j]; - + js = binhead_multi2[jtype][jbin + s[k]]; + for (j = js; j >= 0; j = bins_multi2[jtype][j]) { + // if same size, use half stencil - if(cutneighsq[itype][itype] == cutneighsq[ktype][ktype]){ + if(cutneighsq[itype][itype] == cutneighsq[jtype][jtype]){ if (x[j][2] < ztmp) continue; if (x[j][2] == ztmp) { if (x[j][1] < ytmp) continue;