Model density approach to Ewald summations
Chiara Ribaldone, Jacques Kontak Desmarais
TL;DR
The paper tackles slow or conditional convergence of lattice electrostatic sums in periodic systems by extending the Ewald framework with a model density that cancels monopole, dipole, and quadrupole moments. It derives a transparent, multiplier-free construction of the model density applicable to arbitrary basis functions and unit cells, yielding an absolutely convergent expression for the electrostatic potential via $\Phi^{ew}[n](\mathbf{r})$ and related integrals. A key result is the main relation $\frac{1}{\varpi}\int n(\mathbf{r}') A(\mathbf{r}-\mathbf{r}',\kappa) d^3r' = \frac{1}{\varpi}\int \bar{n}(\mathbf{r}') A(\mathbf{r}-\mathbf{r}',\kappa) d^3r' + \Phi[\Delta n](\mathbf{r}) + \frac{2\pi}{3v\varpi} \mathcal{S}[\Delta n]$, which leads to an explicit, absolutely convergent form for the electrostatic potential broken into model-density and density-difference contributions. The model density is constructed from a multipole expansion with radial functions chosen to reproduce exact moments, enabling efficient evaluation of necessary integrals with standard real spherical harmonics. Overall, the approach clarifies and generalizes established CRYSTAL-type implementations, offering a simple path to apply Ewald sums with arbitrary basis sets and unit cells, with potential benefits for accuracy and performance in bulk material calculations.
Abstract
The evaluation of the electrostatic potential is fundamental to the study of condensed phase systems. We discuss the calculation of the relevant lattice summations by Ewald-type techniques. A model charge density is introduced, that cancels multipole moments of the crystalline charge distribution up to a desired order, for accelerating convergence of the Ewald sums. The method is applicable to calculations of bulk systems, employing arbitrary unit cells in a classical or quantum context, and with arbitrary basis functions to represent the charge density. The approach clarifies a decades-old implementation in the CRYSTAL code.
