class DebyeHuckel : public feasst::ModelTwoBody

Compute energy between two point charges, \(q_i\) and \(q_j\) with a Debye-Huckel potential.

\(U = q_i q_j \chi \exp(-\kappa r) / \epsilon r\)

where \(r\) is the separation distance, \(\kappa\) is the inverse of the Debye screening length, \(\epsilon\) is the dilectric constant (dimensionless), and \(\chi\) is the charge conversion factor assuming the following units:

  1. length: Angstroms

  2. energy: kJ/mol

  3. charge: elementary

An optional smoothing_distance linearly interpolates the energy to zero at the cutoff starting at a distance of cutoff - smoothing_distance.

Avoid singularity by returning a large, positive number when \(r\) is near zero.

Public Functions

void precompute(const ModelParams &existing)

Precompute model parameters based on existing model parameters.

void serialize(std::ostream &ostr) const

Output a serialized version of the existing model.


  • kappa: as described above.

  • dielectric: as described above.

  • smoothing_distance: as described above. Disabled when negative (default: -1).