gftool.basis.pole.gf_from_tau
- gftool.basis.pole.gf_from_tau(gf_tau, n_pole, beta, moments=(), occ=False, width=1.0, weight=None) PoleGf [source]
Find pole Green’s function fitting
gf_tau
.Finds poles and weights for a pole Green’s function matching the given Green’s function
gf_tau
.Note that for an odd number of moments, the central pole is at z = 0, so the causal Green’s function g(0) diverges.
- Parameters:
- gf_tau(…, N_tau) float np.ndarray
Imaginary times Green’s function which is fitted.
- n_poleint
Number of poles to fit.
- betafloat
The inverse temperature \(beta = 1/k_B T\).
- moments(…, N) float array_like
Moments of the high-frequency expansion, where G(z) = moments / z**np.arange(N) for large z.
- occfloat, optional
If given, fix occupation of pole Green’s function to occ (default: False).
- widthfloat, optional
Distance of the largest pole to the origin (default: 1.).
- weight(…, N_tau) float np.ndarray, optional
Weight the values of
gf_tau
, can be provided to include uncertainty.
- Returns:
- gf.resids(…, N) float np.ndarray
Residues (or weight) of the poles.
- gf.poles(N) float np.ndarray
Position of the poles, these are the Chebyshev nodes for degree N.
- Raises:
- ValueError
If more moments are given than poles are fitted (len(moments) > n_pole).
Notes
We employ the similarity of the relation betweens the
moments
and the poles and residues with polynomials and the Vandermond matrix. The poles are chooses as Chebyshev nodes, the residues are calculated accordingly.