gftool.pade_frequencies

gftool.pade_frequencies(num: int, beta)[source]

Return num fermionic Padé frequencies \(iz_p\).

The Padé frequencies are the poles of the approximation of the Fermi function with 2*num poles [ozaki2007]. This gives an non-equidistant mesh on the imaginary axis.

Parameters:
numint

Number of positive Padé frequencies.

betafloat

The inverse temperature \(beta = 1/k_B T\).

Returns:
izp(num) complex np.ndarray

Positive Padé frequencies.

resids(num) float np.ndarray

Residue of the Fermi function corresponding to izp. The residue is given relative to the true residue of the Fermi function -1/beta corresponding to the poles at Matsubara frequencies. This allows to use Padé frequencies as drop-in replacement. The actual residues are -resids/beta.

References

[ozaki2007]

Ozaki, Taisuke. Continued Fraction Representation of the Fermi-Dirac Function for Large-Scale Electronic Structure Calculations. Physical Review B 75, no. 3 (January 23, 2007): 035123. https://doi.org/10.1103/PhysRevB.75.035123.

[hu2010]

J. Hu, R.-X. Xu, and Y. Yan, “Communication: Padé spectrum decomposition of Fermi function and Bose function,” J. Chem. Phys., vol. 133, no. 10, p. 101106, Sep. 2010, https://doi.org/10.1063/1.3484491

Examples

Comparing Padé frequency to Matsubara frequencies:

>>> izp, rp = gt.pade_frequencies(5, beta=1)
>>> izp.imag
array([ 3.14159265,  9.42478813, 15.76218003, 24.87650795, 70.52670981])
>>> gt.matsubara_frequencies(range(5), beta=1).imag
array([ 3.14159265,  9.42477796, 15.70796327, 21.99114858, 28.27433388])

Relative residue:

>>> rp
array([ 1.        ,  1.00002021,  1.04839303,  2.32178225, 22.12980451])