Skip to content

Commit 846a78e

Browse files
author
Han Wang
committed
fix bug of computing total force in fix/dplr
1 parent 7b44d39 commit 846a78e

File tree

1 file changed

+16
-12
lines changed

1 file changed

+16
-12
lines changed

source/lmp/fix_dplr.cpp

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -392,24 +392,28 @@ void FixDPLR::post_force(int vflag)
392392
efield_fsum[0] = efield_fsum[1] = efield_fsum[2] = efield_fsum[3] = 0.0;
393393
efield_force_flag = 0;
394394
for (int ii = 0; ii < nlocal; ++ii){
395+
double tmpf[3];
395396
for (int dd = 0; dd < 3; ++dd){
396-
dfele[ii*3+dd] += q[ii] * efield[dd];
397+
tmpf[dd] = q[ii] * efield[dd];
398+
}
399+
for (int dd = 0; dd < 3; ++dd){
400+
dfele[ii*3+dd] += tmpf[dd];
397401
}
398402
domain->unmap(x[ii],image[ii],unwrap);
399-
efield_fsum[0] -= efield[0]*unwrap[0]+efield[1]*unwrap[1]+efield[2]*unwrap[2];
400-
efield_fsum[1] += efield[0];
401-
efield_fsum[2] += efield[1];
402-
efield_fsum[3] += efield[2];
403+
efield_fsum[0] -= tmpf[0]*unwrap[0]+tmpf[1]*unwrap[1]+tmpf[2]*unwrap[2];
404+
efield_fsum[1] += tmpf[0];
405+
efield_fsum[2] += tmpf[1];
406+
efield_fsum[3] += tmpf[2];
403407
if (evflag) {
404-
v[0] = q[ii] * efield[0] *unwrap[0];
405-
v[1] = q[ii] * efield[1] *unwrap[1];
406-
v[2] = q[ii] * efield[2] *unwrap[2];
407-
v[3] = q[ii] * efield[0] *unwrap[1];
408-
v[4] = q[ii] * efield[0] *unwrap[2];
409-
v[5] = q[ii] * efield[1] *unwrap[2];
408+
v[0] = tmpf[0] *unwrap[0];
409+
v[1] = tmpf[1] *unwrap[1];
410+
v[2] = tmpf[2] *unwrap[2];
411+
v[3] = tmpf[0] *unwrap[1];
412+
v[4] = tmpf[0] *unwrap[2];
413+
v[5] = tmpf[1] *unwrap[2];
410414
v_tally(ii, v);
411415
}
412-
}
416+
}
413417
}
414418
// lmp nlist
415419
NeighList * list = pair_nnp->list;

0 commit comments

Comments
 (0)