DFT and Potentials

Potentials output by DFT codes can be a source of confusion. This page discusses some common points of misunderstanding.


A choice between volts, Hartrees (per electron) and Rydbergs (per electron). Abinit and Castep use Hartrees, Quantum Espresso and Siesta use Rydbergs, and c2x tries to convert everything to volts.


Adding a constant to the potential will have no effect on the wavefunctions calculated, and the zero is ill-defined anyway for an infinite periodic system. One cannot compare the absolute values of potentials between different codes as they are likely to use different conventions for where to put their zero. Differences between two points in the same cell should be comparable between different codes.

Sign convention

Most DFT codes consider the potential to be that felt by an electron, so that multiplying the electron density by the potential gives an energy. Most of the rest of Physics uses the opposite sign convention. Whatever c2x does is likely to confuse at this point. From version 2.32 the sign of potentials is not changed (earlier versions changed the sign for Castep's cst_esp output).

However, if c2x is asked to calculate an electrostatic potential (with -E), then it uses the usual electrostatic sign convention, so the opposite of what (most) DFT codes record.

C2x can be asked to change its convention with "-R=-1x" (from 2.32), but this does not work with -E as it scales the density read before using it to calculate the potential.

Exchange-correlation potential

Some codes include this in their definition of "potential" or "local potential", some do not. If one wishes to find a vacuum level, then the XC potential in a vacuum is zero. However, it can be significant in a low but not quite zero density area in a simulation cell. This tends to be an issue with plane wave codes, and less so with localised basis set codes which may simply have no basis function covering the point one is regarding as vacuum, guaranteeing that the density is zero.

From version 2.32, c2x can report the Perdue Zunger LDA XC potential for a given density. This is an approximation to how far from the vacuum XC level one is. The XC potential decays to zero as one over the cube root of the density (in the low density limit). A density as low as one electron per 10 million cubic Angstroms still gives an XC potential of over 0.1V. For further discussion of how this can affect calculations of the electron affinity of surfaces, I would unsurprisingly refer the reader to MJ Rutter and J Robertson, Phys. Rev. B 57 9241 (1998).

Whilst it is clear that the XC potential in a vacuum is zero, it can be less clear whether it should be included in a non-vacuum region. If one's test particle is not an electron it probably should not. If one's test particle is a (low energy) electron, it probably should, and one should probably use the same (modern, GGA) XC potential that was used for one's calculation when including it.