diff --git a/src/KSPACE/ewald.cpp b/src/KSPACE/ewald.cpp index 731509970a..106ab6961f 100644 --- a/src/KSPACE/ewald.cpp +++ b/src/KSPACE/ewald.cpp @@ -855,6 +855,13 @@ void Ewald::slabcorr() const double qscale = force->qqrd2e * scale; if (eflag_global) energy += qscale * e_slabcorr; + + // per-atom energy + + if (eflag_atom) { + double efact = 2.0*MY_PI*dipole_all/volume; + for (int i = 0; i < nlocal; i++) eatom[i] += qscale * q[i]*x[i][2]*efact; + } // add on force corrections diff --git a/src/KSPACE/pppm.cpp b/src/KSPACE/pppm.cpp index 8cd30a76e1..3f640e3456 100644 --- a/src/KSPACE/pppm.cpp +++ b/src/KSPACE/pppm.cpp @@ -2445,6 +2445,13 @@ void PPPM::slabcorr() if (eflag_global) energy += qscale * e_slabcorr; + // per-atom energy + + if (eflag_atom) { + double efact = 2.0*MY_PI*dipole_all/volume; + for (int i = 0; i < nlocal; i++) eatom[i] += qscale * q[i]*x[i][2]*efact; + } + // add on force corrections double ffact = -4.0*MY_PI*dipole_all/volume;