Fix issue with KSpace slab correction energy with non-neutral systems
This commit is contained in:
@ -65,7 +65,7 @@ void SlabDipole::compute_corr(double qsum, int eflag_atom, int eflag_global, dou
|
||||
|
||||
// compute corrections
|
||||
double const e_slabcorr = MY_2PI *
|
||||
(dipole_all * dipole_all - qsum * dipole_r2 - qsum * qsum * zprd * zprd / 12.0) / volume;
|
||||
(dipole_all * dipole_all - qsum * dipole_r2 - qsum * qsum * zprd_slab * zprd_slab / 12.0) / volume;
|
||||
double const qscale = qqrd2e * scale;
|
||||
if (eflag_global) energy += qscale * e_slabcorr;
|
||||
|
||||
@ -75,7 +75,7 @@ void SlabDipole::compute_corr(double qsum, int eflag_atom, int eflag_global, dou
|
||||
for (int i = 0; i < nlocal; i++)
|
||||
eatom[i] += efact * q[i] *
|
||||
(x[i][2] * dipole_all - 0.5 * (dipole_r2 + qsum * x[i][2] * x[i][2]) -
|
||||
qsum * zprd * zprd / 12.0);
|
||||
qsum * zprd_slab * zprd_slab / 12.0);
|
||||
}
|
||||
|
||||
// add on force corrections
|
||||
|
||||
Reference in New Issue
Block a user