make airebo compatible with pair_modify nofdotr
This commit is contained in:
114
src/pair.cpp
114
src/pair.cpp
@ -1499,17 +1499,35 @@ void Pair::v_tally2(int i, int j, double fpair, double *drij)
|
||||
{
|
||||
double v[6];
|
||||
|
||||
v[0] = 0.5 * drij[0]*drij[0]*fpair;
|
||||
v[1] = 0.5 * drij[1]*drij[1]*fpair;
|
||||
v[2] = 0.5 * drij[2]*drij[2]*fpair;
|
||||
v[3] = 0.5 * drij[0]*drij[1]*fpair;
|
||||
v[4] = 0.5 * drij[0]*drij[2]*fpair;
|
||||
v[5] = 0.5 * drij[1]*drij[2]*fpair;
|
||||
v[0] = drij[0]*drij[0]*fpair;
|
||||
v[1] = drij[1]*drij[1]*fpair;
|
||||
v[2] = drij[2]*drij[2]*fpair;
|
||||
v[3] = drij[0]*drij[1]*fpair;
|
||||
v[4] = drij[0]*drij[2]*fpair;
|
||||
v[5] = drij[1]*drij[2]*fpair;
|
||||
|
||||
vatom[i][0] += v[0]; vatom[i][1] += v[1]; vatom[i][2] += v[2];
|
||||
vatom[i][3] += v[3]; vatom[i][4] += v[4]; vatom[i][5] += v[5];
|
||||
vatom[j][0] += v[0]; vatom[j][1] += v[1]; vatom[j][2] += v[2];
|
||||
vatom[j][3] += v[3]; vatom[j][4] += v[4]; vatom[j][5] += v[5];
|
||||
if (vflag_global) {
|
||||
virial[0] += v[0];
|
||||
virial[1] += v[1];
|
||||
virial[2] += v[2];
|
||||
virial[3] += v[3];
|
||||
virial[4] += v[4];
|
||||
virial[5] += v[5];
|
||||
}
|
||||
|
||||
if (vflag_atom) {
|
||||
v[0] *= 0.5;
|
||||
v[1] *= 0.5;
|
||||
v[2] *= 0.5;
|
||||
v[3] *= 0.5;
|
||||
v[4] *= 0.5;
|
||||
v[5] *= 0.5;
|
||||
|
||||
vatom[i][0] += v[0]; vatom[i][1] += v[1]; vatom[i][2] += v[2];
|
||||
vatom[i][3] += v[3]; vatom[i][4] += v[4]; vatom[i][5] += v[5];
|
||||
vatom[j][0] += v[0]; vatom[j][1] += v[1]; vatom[j][2] += v[2];
|
||||
vatom[j][3] += v[3]; vatom[j][4] += v[4]; vatom[j][5] += v[5];
|
||||
}
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
@ -1522,23 +1540,29 @@ void Pair::v_tally3(int i, int j, int k,
|
||||
{
|
||||
double v[6];
|
||||
|
||||
v[0] = THIRD * (drik[0]*fi[0] + drjk[0]*fj[0]);
|
||||
v[1] = THIRD * (drik[1]*fi[1] + drjk[1]*fj[1]);
|
||||
v[2] = THIRD * (drik[2]*fi[2] + drjk[2]*fj[2]);
|
||||
v[3] = THIRD * (drik[0]*fi[1] + drjk[0]*fj[1]);
|
||||
v[4] = THIRD * (drik[0]*fi[2] + drjk[0]*fj[2]);
|
||||
v[5] = THIRD * (drik[1]*fi[2] + drjk[1]*fj[2]);
|
||||
v[0] = (drik[0]*fi[0] + drjk[0]*fj[0]);
|
||||
v[1] = (drik[1]*fi[1] + drjk[1]*fj[1]);
|
||||
v[2] = (drik[2]*fi[2] + drjk[2]*fj[2]);
|
||||
v[3] = (drik[0]*fi[1] + drjk[0]*fj[1]);
|
||||
v[4] = (drik[0]*fi[2] + drjk[0]*fj[2]);
|
||||
v[5] = (drik[1]*fi[2] + drjk[1]*fj[2]);
|
||||
|
||||
if (vflag_global) {
|
||||
virial[0] += 3.0*v[0];
|
||||
virial[1] += 3.0*v[1];
|
||||
virial[2] += 3.0*v[2];
|
||||
virial[3] += 3.0*v[3];
|
||||
virial[4] += 3.0*v[4];
|
||||
virial[5] += 3.0*v[5];
|
||||
virial[0] += v[0];
|
||||
virial[1] += v[1];
|
||||
virial[2] += v[2];
|
||||
virial[3] += v[3];
|
||||
virial[4] += v[4];
|
||||
virial[5] += v[5];
|
||||
}
|
||||
|
||||
if (vflag_atom) {
|
||||
v[0] *= THIRD;
|
||||
v[1] *= THIRD;
|
||||
v[2] *= THIRD;
|
||||
v[3] *= THIRD;
|
||||
v[4] *= THIRD;
|
||||
v[5] *= THIRD;
|
||||
vatom[i][0] += v[0]; vatom[i][1] += v[1]; vatom[i][2] += v[2];
|
||||
vatom[i][3] += v[3]; vatom[i][4] += v[4]; vatom[i][5] += v[5];
|
||||
vatom[j][0] += v[0]; vatom[j][1] += v[1]; vatom[j][2] += v[2];
|
||||
@ -1559,21 +1583,39 @@ void Pair::v_tally4(int i, int j, int k, int m,
|
||||
{
|
||||
double v[6];
|
||||
|
||||
v[0] = 0.25 * (drim[0]*fi[0] + drjm[0]*fj[0] + drkm[0]*fk[0]);
|
||||
v[1] = 0.25 * (drim[1]*fi[1] + drjm[1]*fj[1] + drkm[1]*fk[1]);
|
||||
v[2] = 0.25 * (drim[2]*fi[2] + drjm[2]*fj[2] + drkm[2]*fk[2]);
|
||||
v[3] = 0.25 * (drim[0]*fi[1] + drjm[0]*fj[1] + drkm[0]*fk[1]);
|
||||
v[4] = 0.25 * (drim[0]*fi[2] + drjm[0]*fj[2] + drkm[0]*fk[2]);
|
||||
v[5] = 0.25 * (drim[1]*fi[2] + drjm[1]*fj[2] + drkm[1]*fk[2]);
|
||||
v[0] = (drim[0]*fi[0] + drjm[0]*fj[0] + drkm[0]*fk[0]);
|
||||
v[1] = (drim[1]*fi[1] + drjm[1]*fj[1] + drkm[1]*fk[1]);
|
||||
v[2] = (drim[2]*fi[2] + drjm[2]*fj[2] + drkm[2]*fk[2]);
|
||||
v[3] = (drim[0]*fi[1] + drjm[0]*fj[1] + drkm[0]*fk[1]);
|
||||
v[4] = (drim[0]*fi[2] + drjm[0]*fj[2] + drkm[0]*fk[2]);
|
||||
v[5] = (drim[1]*fi[2] + drjm[1]*fj[2] + drkm[1]*fk[2]);
|
||||
|
||||
vatom[i][0] += v[0]; vatom[i][1] += v[1]; vatom[i][2] += v[2];
|
||||
vatom[i][3] += v[3]; vatom[i][4] += v[4]; vatom[i][5] += v[5];
|
||||
vatom[j][0] += v[0]; vatom[j][1] += v[1]; vatom[j][2] += v[2];
|
||||
vatom[j][3] += v[3]; vatom[j][4] += v[4]; vatom[j][5] += v[5];
|
||||
vatom[k][0] += v[0]; vatom[k][1] += v[1]; vatom[k][2] += v[2];
|
||||
vatom[k][3] += v[3]; vatom[k][4] += v[4]; vatom[k][5] += v[5];
|
||||
vatom[m][0] += v[0]; vatom[m][1] += v[1]; vatom[m][2] += v[2];
|
||||
vatom[m][3] += v[3]; vatom[m][4] += v[4]; vatom[m][5] += v[5];
|
||||
if (vflag_global) {
|
||||
virial[0] += v[0];
|
||||
virial[1] += v[1];
|
||||
virial[2] += v[2];
|
||||
virial[3] += v[3];
|
||||
virial[4] += v[4];
|
||||
virial[5] += v[5];
|
||||
}
|
||||
|
||||
if (vflag_atom) {
|
||||
v[0] *= 0.25;
|
||||
v[1] *= 0.25;
|
||||
v[2] *= 0.25;
|
||||
v[3] *= 0.25;
|
||||
v[4] *= 0.25;
|
||||
v[5] *= 0.25;
|
||||
|
||||
vatom[i][0] += v[0]; vatom[i][1] += v[1]; vatom[i][2] += v[2];
|
||||
vatom[i][3] += v[3]; vatom[i][4] += v[4]; vatom[i][5] += v[5];
|
||||
vatom[j][0] += v[0]; vatom[j][1] += v[1]; vatom[j][2] += v[2];
|
||||
vatom[j][3] += v[3]; vatom[j][4] += v[4]; vatom[j][5] += v[5];
|
||||
vatom[k][0] += v[0]; vatom[k][1] += v[1]; vatom[k][2] += v[2];
|
||||
vatom[k][3] += v[3]; vatom[k][4] += v[4]; vatom[k][5] += v[5];
|
||||
vatom[m][0] += v[0]; vatom[m][1] += v[1]; vatom[m][2] += v[2];
|
||||
vatom[m][3] += v[3]; vatom[m][4] += v[4]; vatom[m][5] += v[5];
|
||||
}
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user