correct stress tally to give results consistent with fdotr

This commit is contained in:
Axel Kohlmeyer
2021-08-25 07:39:17 -04:00
parent b55673f0a6
commit ce0f1478cb

View File

@ -138,16 +138,16 @@ void PairLebedevaZ::compute(int eflag, int vflag)
// derivatives
fpair = -6.0*p.A*p.z06/r8+p.B*p.alpha*exp1/r; // used for x,y,z
der = p.D1+2*p.D2*rhosq-p.lambda1*sumD; // used for x,y
fxy = fpair - 2*p.C*exp2*exp3*der;
fz = fpair + 2*p.C*p.lambda2*sumD*exp2*exp3;
fxy = 2*p.C*exp2*exp3*der;
fz = 2*p.C*p.lambda2*sumD*exp2*exp3;
f[i][0] += delx*fxy;
f[i][1] += dely*fxy;
f[i][2] += delz*fz;
f[i][0] += delx*(fpair-fxy);
f[i][1] += dely*(fpair-fxy);
f[i][2] += delz*(fpair+fz);
if (newton_pair || j < nlocal) {
f[j][0] -= delx*fxy;
f[j][1] -= dely*fxy;
f[j][2] -= delz*fz;
f[j][0] -= delx*(fpair-fxy);
f[j][1] -= dely*(fpair-fxy);
f[j][2] -= delz*(fpair+fz);
}
if (eflag) {
@ -155,8 +155,18 @@ void PairLebedevaZ::compute(int eflag, int vflag)
}
if (evflag) {
ev_tally_xyz(i,j,nlocal,newton_pair,evdwl,0,
-fxy,-fxy,-fz,delx,dely,delz);
ev_tally(i, j, nlocal, newton_pair, evdwl, 0.0, fpair, delx, dely, delz);
if (vflag_either) {
double fi[3],fj[3];
fi[0] = -delx * fxy;
fi[1] = -dely * fxy;
fi[2] = delz * fz;
fj[0] = delx * fxy;
fj[1] = dely * fxy;
fj[2] = -delz * fz;
v_tally2_newton(i,fi,x[i]);
v_tally2_newton(j,fj,x[j]);
}
}
}
}