class Ewald : public feasst::VisitModel

The Ewald summation accounts for the long-range nature of the electrostatic interaction by applying a Gaussian screening charge, computing a Fourier-space long-range component, and then correcting for the various spurious terms that are included in the Fourier summation, such as self and intra-particle.

See “Computer simulation of liquids” by M. P. Allen and D. J. Tildesley. The LAMMPS and DL_POLY manuals also include thorough descriptions of the Ewald summation.

Ewald is not supported for use as a reference state for dual-cut.

Following the description in the classic DL-POLY user manual (version 1.9), if the real space basis vectors are given by \(\vec{a}, \vec{b}, \vec{c}\), then reciprocal space basis vectors are

\(V = \vec{a} \cdot \vec{b} \times \vec{c}\)

\(\vec{u} = 2\pi\vec{b}\times\vec{c}/V\)

\(\vec{v} = 2\pi\vec{b}\times\vec{c}/V\)

\(\vec{w} = 2\pi\vec{b}\times\vec{c}/V\)


  • tolerance: determine the alpha parameter and number of wave vectors by specifying the accuracy relative to the energy of two unit charges separated by a distance of one unit. As described and implemented in LAMMPS, see: https://docs.lammps.org/kspace_style.html, https://doi.org/10.1080/08927029208049126, https://doi.org/10.1063/1.470043.

  • tolerance_num_sites: for setting parameters with the tolerance, optionally set the number of sites to be used for the parameter calculation rather than the currently existing number of sites (default).

  • alpha: optionally specify the alpha parameter in units of inverse length.

  • kxmax: optionally specify the maximum wave vectors in the first dimension.

  • kymax: same as above, but in the second dimension.

  • kzmax: same as above, but in the third dimension.

  • kmax_squared: optionally set the squared maximum integer wave vector for cubic domains only, which also sets kxmax, etc.