triqs.gfs.tools.discretize_bath

triqs.gfs.tools.discretize_bath(delta_in, Nb, eps0=3, V0=None, tol=1e-15, maxiter=10000, cmplx=False, method='BFGS')[source]

Fit a hybridization function with Nb discrete bath sites.

The discretized hybridization

\[\begin{split}\Delta_{kl}^{\mathrm{disc}}(i\omega_n) = \sum_{j=1}^{N_b} V_{kj}\, S_j\, V_{jl}^*, \qquad S_j = \begin{cases} (i\omega_n - \varepsilon_j)^{-1}, & \text{Matsubara} \\ -e^{-\tau\varepsilon_j}/(1+e^{-\beta\varepsilon_j}), & \text{imaginary time} \end{cases}\end{split}\]

is fitted to delta_in by minimizing the norm

\[\biggl[\frac{1}{N} \sum_{n=1}^{N} \bigl|\Delta^{\mathrm{disc}}(i\omega_n) - \Delta(i\omega_n)\bigr|^2 \biggr]^{1/2}\]

(or the analogous imaginary-time expression) using scipy.optimize.minimize() / scipy.optimize.basinhopping().

Parameters:
delta_inGf or BlockGf

Matsubara or imaginary-time hybridization function to discretize.

Nbint

Number of bath sites per Gf block.

eps0float or list of float, optional

Approximate bandwidth (used to seed bath energies on a linspace) or explicit initial guess for the bath energies. Default 3.0.

V0float, complex or numpy.ndarray, optional

Initial guess for V:

  • scalar — broadcast to every element of V.

  • 2D array — used as is.

  • None (default) — derive from the Cholesky factor of the leading moment of delta_in (\(\lim_{\omega\to\infty} i\omega\,\Delta(i\omega)\), or \(-\Delta(0^+) - \Delta(\beta^-)\) for imaginary time).

tolfloat, optional

Optimizer tolerance (ftol / xatol). Default 1e-15.

maxiterint, optional

Maximum number of optimization steps. Default 10000.

cmplxbool, optional

If True, optimize complex hoppings. Default False.

method{‘BFGS’, ‘Nelder-Mead’, ‘basinhopping’}, optional

Optimization method. Default 'BFGS' (uses L-BFGS-B internally).

Returns:
V_optnumpy.ndarray or list thereof

Optimized bath hoppings.

eps_optlist of float or list of list of float

Optimized bath energies, sorted in ascending order.

delta_discGf or BlockGf

Discretized hybridization function on the mesh of delta_in.