@@ -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