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])