Ewald summation#
For configuration options, see the solid config reference.
The Ewald summation computes electrostatic (Coulomb) energies in periodic systems. Direct summation of \(1/r\) interactions converges extremely slowly in periodic boundary conditions; the Ewald technique decomposes the sum into rapidly converging real-space and reciprocal-space series.
For a pedagogical derivation, see Ewald Summation (Qijing Zheng).
Formulation#
The key idea is to split each point charge into a short-range part (screened by a Gaussian) and a long-range part (the compensating Gaussian). The short-range part converges quickly in real space; the smooth long-range part converges quickly in reciprocal (Fourier) space.
The total electrostatic energy is:
All formulas below use atomic units (\(4\pi\epsilon_0 = 1\)). \(\Omega\) denotes the simulation cell volume and \(\mathbf{n}\) runs over lattice translation vectors (periodic images). The implementation treats all charged particles (electrons and ions) uniformly.
Real-space term#
Interactions between screened charges, summed over particle pairs \(i, j\) and periodic images \(\mathbf{n}\). The self-interaction (\(i=j\), \(\mathbf{n}=\mathbf{0}\)) is excluded:
Reciprocal-space term#
The compensating Gaussian distributions are summed in Fourier space over reciprocal lattice vectors \(\mathbf{G} \neq 0\):
where:
Self-energy correction#
Removes the spurious interaction of each Gaussian cloud with its own point charge:
Charged-system correction#
For non-neutral cells, the \(\mathbf{G}=0\) divergence is regularized by a uniform neutralizing background:
Computational details#
Ewald parameter \(\alpha\). Chosen heuristically as \(\alpha = 5.0 / h_\text{min}\), where \(h_\text{min}\) is the smallest perpendicular height of the simulation cell. This ensures the real-space erfc terms decay to negligible values within the cell boundaries.
G-vector selection. Candidate reciprocal lattice vectors are generated on a grid bounded by ewald_gmax. Only vectors whose weight \(W(G)\) exceeds a tolerance (\(10^{-12}\)) are kept, which dramatically reduces the sum size.
See also#
The Ewald parameters are not user-configurable — they are set internally by the solid workflow’s potential-energy estimator (
ewald_gmax=200,nlatvec=1).API:
EwaldSum