PEXSI
 All Classes Namespaces Files Functions Variables Typedefs Pages
Pole expansion

The pole expansion is used to expand Fermi-Dirac functions and other derived quantities using a number of Green's functions (poles).

GetPoleDensity

Pole expansion for the Fermi-Dirac operator. This is the most commonly used subroutine for the pole expansion, and can be used to compute the shifts and weights for calculating the density matrix, the total energy, and the Hellman-Feynman force. This routine obtains the expansion

\[ f_{\beta} (z) = \frac{2}{1+e^{\beta z}} \approx \mathrm{Im} \sum_{l=1}^{P} \frac{\omega^{\rho}_l}{z-z_l} \]

GetPoleDensityDrvMu

Pole expansion for the derivative of the Fermi-Dirac operator with respect to the chemical potential mu. This routine can be used to evaluate the derivative of the number of electrons with respect to the chemical potential for the Newton step for updating the chemical potential.

Note that \(f_{\beta}\) does not explicitly contain \(\mu\), so this routine actually computes the expansion

\[ -\frac{\partial f_{\beta}}{\partial z} (z) = 2\beta \frac{e^{\beta z}}{(1+e^{\beta z})^2} \approx \mathrm{Im} \sum_{l=1}^{P} \frac{\omega^{\mu}_l}{z-z_l} \]

GetPoleDensityDrvT

Pole expansion for the derivative of the Fermi-Dirac operator with respect to the temperature T \((1/\beta)\).

This routine can be used to extrapolate the number of electrons from a finite temperature calculation to a zero temperature calculation, using the derivative information. However, this functionality is not used anymore in the current version of PEXSI.

\[ \frac{\partial f_{\beta}}{\partial (1/\beta)} (z) = 2 \beta^2 z \frac{e^{\beta z}}{(1+e^{\beta z})^2} \approx \mathrm{Im} \sum_{l=1}^{P} \frac{\omega^{T}_l}{z-z_l} \]

GetPoleHelmholtz

Pole expansion for the Helmholtz free energy function.

This routine can be used to compute the (Helmholtz) free energy when finite temperature effect exists. This is especially important for metallic system and other small gapped systems. This routine expands the free energy function

\[ f^{\mathcal{F}}_{\beta}(z) = -\frac{2}{\beta} \log (1 + e^{-\beta z}) \approx \mathrm{Im} \sum_{l=1}^{P} \frac{\omega^{\mathcal{F}}_l}{z-z_l} \]

GetPoleForce

This routine can be used to compute the Pulay contribution of the atomic force in electronic structure calculations. This term is especially important when basis set is not complete and changes with atomic positions. This routine expands the function used in the energy density matrix.

\[ f^{E}_{\beta}(z) = (z+\mu) f_{\beta}(z) \approx \mathrm{Im} \sum_{l=1}^{P} \frac{\omega^{E}_l}{z-z_l} \]

Note that when \(z=H-\mu I\), \(f^{E}_{\beta}(H-\mu I) = H f_{\beta}(H-\mu I)\), and therefore the energy density matrix can be directly used to compute the band energy without using eigenvalues.