Skip three-body in OpenMP version
This commit is contained in:
@ -156,50 +156,51 @@ void PairSWOMP::eval(int iifrom, int iito, ThrData * const thr)
|
||||
if (EVFLAG) ev_tally_thr(this,i,j,nlocal,/* newton_pair */ 1,
|
||||
evdwl,0.0,fpair,delx,dely,delz,thr);
|
||||
}
|
||||
|
||||
jnumm1 = numshort - 1;
|
||||
|
||||
for (jj = 0; jj < jnumm1; jj++) {
|
||||
j = neighshort_thr[jj];
|
||||
jtype = map[type[j]];
|
||||
ijparam = elem3param[itype][jtype][jtype];
|
||||
delr1[0] = x[j].x - xtmp;
|
||||
delr1[1] = x[j].y - ytmp;
|
||||
delr1[2] = x[j].z - ztmp;
|
||||
rsq1 = delr1[0]*delr1[0] + delr1[1]*delr1[1] + delr1[2]*delr1[2];
|
||||
|
||||
double fjxtmp,fjytmp,fjztmp;
|
||||
fjxtmp = fjytmp = fjztmp = 0.0;
|
||||
|
||||
for (kk = jj+1; kk < numshort; kk++) {
|
||||
k = neighshort_thr[kk];
|
||||
ktype = map[type[k]];
|
||||
ikparam = elem3param[itype][ktype][ktype];
|
||||
ijkparam = elem3param[itype][jtype][ktype];
|
||||
|
||||
delr2[0] = x[k].x - xtmp;
|
||||
delr2[1] = x[k].y - ytmp;
|
||||
delr2[2] = x[k].z - ztmp;
|
||||
rsq2 = delr2[0]*delr2[0] + delr2[1]*delr2[1] + delr2[2]*delr2[2];
|
||||
|
||||
threebody(¶ms[ijparam],¶ms[ikparam],¶ms[ijkparam],
|
||||
rsq1,rsq2,delr1,delr2,fj,fk,EFLAG,evdwl);
|
||||
|
||||
fxtmp -= fj[0] + fk[0];
|
||||
fytmp -= fj[1] + fk[1];
|
||||
fztmp -= fj[2] + fk[2];
|
||||
fjxtmp += fj[0];
|
||||
fjytmp += fj[1];
|
||||
fjztmp += fj[2];
|
||||
f[k].x += fk[0];
|
||||
f[k].y += fk[1];
|
||||
f[k].z += fk[2];
|
||||
|
||||
if (EVFLAG) ev_tally3_thr(this,i,j,k,evdwl,0.0,fj,fk,delr1,delr2,thr);
|
||||
if (threebody_on) {
|
||||
jnumm1 = numshort - 1;
|
||||
|
||||
for (jj = 0; jj < jnumm1; jj++) {
|
||||
j = neighshort_thr[jj];
|
||||
jtype = map[type[j]];
|
||||
ijparam = elem3param[itype][jtype][jtype];
|
||||
delr1[0] = x[j].x - xtmp;
|
||||
delr1[1] = x[j].y - ytmp;
|
||||
delr1[2] = x[j].z - ztmp;
|
||||
rsq1 = delr1[0]*delr1[0] + delr1[1]*delr1[1] + delr1[2]*delr1[2];
|
||||
|
||||
double fjxtmp,fjytmp,fjztmp;
|
||||
fjxtmp = fjytmp = fjztmp = 0.0;
|
||||
|
||||
for (kk = jj+1; kk < numshort; kk++) {
|
||||
k = neighshort_thr[kk];
|
||||
ktype = map[type[k]];
|
||||
ikparam = elem3param[itype][ktype][ktype];
|
||||
ijkparam = elem3param[itype][jtype][ktype];
|
||||
|
||||
delr2[0] = x[k].x - xtmp;
|
||||
delr2[1] = x[k].y - ytmp;
|
||||
delr2[2] = x[k].z - ztmp;
|
||||
rsq2 = delr2[0]*delr2[0] + delr2[1]*delr2[1] + delr2[2]*delr2[2];
|
||||
|
||||
threebody(¶ms[ijparam],¶ms[ikparam],¶ms[ijkparam],
|
||||
rsq1,rsq2,delr1,delr2,fj,fk,EFLAG,evdwl);
|
||||
|
||||
fxtmp -= fj[0] + fk[0];
|
||||
fytmp -= fj[1] + fk[1];
|
||||
fztmp -= fj[2] + fk[2];
|
||||
fjxtmp += fj[0];
|
||||
fjytmp += fj[1];
|
||||
fjztmp += fj[2];
|
||||
f[k].x += fk[0];
|
||||
f[k].y += fk[1];
|
||||
f[k].z += fk[2];
|
||||
|
||||
if (EVFLAG) ev_tally3_thr(this,i,j,k,evdwl,0.0,fj,fk,delr1,delr2,thr);
|
||||
}
|
||||
f[j].x += fjxtmp;
|
||||
f[j].y += fjytmp;
|
||||
f[j].z += fjztmp;
|
||||
}
|
||||
f[j].x += fjxtmp;
|
||||
f[j].y += fjytmp;
|
||||
f[j].z += fjztmp;
|
||||
}
|
||||
f[i].x += fxtmp;
|
||||
f[i].y += fytmp;
|
||||
|
||||
Reference in New Issue
Block a user