Periodic systems II. The thermodynamic limit
Simulating an extended system means approximating a system of infinite size, also known as the thermodynamic limit (TDL).
Supercell vs k-point sampling
In practice we cannot compute an infinite system, so we approach the limit by extrapolating finite systems of increasing size. There are two ways to grow the system, by either
- increase from a unit cell to larger and larger supercells, or
- sample the first Brillouin zone with an increasingly fine k-point mesh.
These two are mathematically equivalent as long as
where is the number of atoms per unit cell, the total number of k-points in a k-sampled calculation, and the total atoms in the supercell. They are equivalent because enlarging the supercell shrinks its Brillouin zone by the same factor, so a finer mesh on the unit cell’s Brillouin zone ends up sampling the same set of points.
As a check, a diamond supercell gives −87.6549188020541 hartree; dividing by the supercell size reproduces the k-point sampled value of −10.95686485 (the k-sampled energy being reported per cell, ).
Computational cost
The cost of a periodic calculation scales in general as
where the exponents depend on the method. HF has , , MP2 has , , and CCSD has , . Comparing the two routes to the same system size (doubling each cell dimension, a supercell at the point with versus a mesh on the unit cell), the supercell approach costs a factor of more for HF, where is the supercell atom count, and and more for MP2 and CCSD. Translational symmetry is doing real work; k-point sampling wins, and the rest of these notes uses it.
Extrapolating in the mesh size
To reach the TDL we extrapolate to , assuming the energies are converging. The HF and MP2 correlation energies of diamond, plotted against the reciprocal mesh size below.


The extrapolation variable follows from the decay of the leading finite-size error. With the Madelung-constant correction applied (next section), the remaining HF and correlation errors fall off like the inverse volume of the sampled cell, . Without it, the exchange error decays like an inverse length, , and that slower decay is the one that matters at large . Since the correction is on here, I extrapolate linearly in using the two largest meshes ( and ), executed as
inf_scf = interpolate.interp1d((Nk**(-1))[:2],
scf_e[-2:], fill_value='extrapolate')
with interpolate from scipy. The extrapolated energies are shown below.


These TDL values get used later for the cohesive energy of diamond.
Ewald correction
Because we approximate an infinite system, there are finite-size errors from the kinetic, Coulomb, exchange, and correlation terms, each decaying at its own rate with . The dominant one at the HF level comes from an integrable divergence at in the nonlocal exact-exchange energy. The standard fix is the “Ewald” scheme (Broqvist, Alkauskas, and Pasquarello, Phys. Rev. B 80, 085114 (2009)), which shifts the occupied-orbital energies by the Madelung constant of the system; PySCF applies it by default.


With the correction turned off, both HF and MP2 converge visibly more slowly toward the TDL values obtained above. Treating finite-size errors explicitly matters for both accuracy and efficiency, since a corrected calculation at a modest mesh is worth an uncorrected one at a much larger mesh.