PAOFLOW.utils.smearing#

Functions#

gaussian(eig, ene, delta)

Evaluate the normalised Gaussian smearing function.

metpax(eig, ene, delta)

Evaluate the Methfessel-Paxton smearing function.

intgaussian(eig, ene, delta)

Evaluate the error-function approximation to the Fermi-Dirac step.

intmetpax(eig, ene, delta)

Evaluate the Methfessel-Paxton approximation to the Fermi-Dirac occupation.

Module Contents#

PAOFLOW.utils.smearing.gaussian(eig, ene, delta)[source]#

Evaluate the normalised Gaussian smearing function.

Parameters:
  • eig (float or np.ndarray) – Band eigenvalue(s) (eV).

  • ene (float or np.ndarray) – Energy point(s) at which to evaluate the function (eV).

  • delta (float or np.ndarray) – Smearing width parameter (eV).

Returns:

Gaussian broadening:

\[g(E; \varepsilon, \delta) = \frac{1}{\sqrt{\pi}\,\delta} \exp\!\left(-\left(\frac{E - \varepsilon}{\delta}\right)^2\right)\]

Return type:

float or np.ndarray

PAOFLOW.utils.smearing.metpax(eig, ene, delta)[source]#

Evaluate the Methfessel-Paxton smearing function.

Parameters:
  • eig (float or np.ndarray) – Band eigenvalue(s) (eV).

  • ene (float or np.ndarray) – Energy point(s) at which to evaluate the function (eV).

  • delta (float or np.ndarray) – Smearing width parameter (eV).

Returns:

Methfessel-Paxton approximation to the delta function at order nh = 5:

\[D_N(x) = \sum_{n=0}^{N} \frac{(-1)^n}{n!\, 4^n \sqrt{\pi}} H_{2n}(x) \exp(-x^2)\]

where \(x = (E - \varepsilon)/\delta\) and \(H_{2n}\) are Hermite polynomials. See Methfessel and Paxton, Phys. Rev. B 40, 3616 (1989).

Return type:

float or np.ndarray

PAOFLOW.utils.smearing.intgaussian(eig, ene, delta)[source]#

Evaluate the error-function approximation to the Fermi-Dirac step.

Parameters:
  • eig (float or np.ndarray) – Fermi energy or eigenvalue(s) (eV).

  • ene (float or np.ndarray) – Energy point(s) (eV).

  • delta (float or np.ndarray) – Smearing width parameter (eV).

Returns:

Occupation approximated by

\[f(\varepsilon; E, \delta) = \frac{1 - {\rm erf}\bigl((\varepsilon - E)/\delta\bigr)}{2}\]

Return type:

float or np.ndarray

PAOFLOW.utils.smearing.intmetpax(eig, ene, delta)[source]#

Evaluate the Methfessel-Paxton approximation to the Fermi-Dirac occupation.

Parameters:
  • eig (float or np.ndarray) – Eigenvalue(s) (eV).

  • ene (float or np.ndarray) – Energy point(s) (eV).

  • delta (float or np.ndarray) – Smearing width parameter (eV).

Returns:

Methfessel-Paxton occupation function at order nh = 5:

\[f_N(x) = \frac{1 - {\rm erf}(x)}{2} + \sum_{n=1}^{N} A_n H_{2n-1}(x) \exp(-x^2)\]

where \(x = (\varepsilon - E)/\delta\). See Methfessel and Paxton, Phys. Rev. B 40, 3616 (1989).

Return type:

float or np.ndarray