Maxent Utilities
This file defines a bunch of functions that facilitate the use of MaxEnt.
- triqs_maxent.maxent_util.get_G_w_from_A_w(A_w, w_points, np_interp_A=None, np_omega=2000, w_min=-10, w_max=10, broadening_factor=1.0)[source]
Use Kramers-Kronig to determine the retarded Green function \(G(\omega)\)
This calculates \(G(\omega)\) from the spectral function \(A(\omega)\). A numerical broadening of \(bf * i\Delta\omega\) is used, with the adjustable broadening factor bf (default is 1). This function normalizes \(A(\omega)\). Use mpi to save time.
- Parameters:
- A_warray
Real-frequency spectral function.
- w_pointsarray
Real-frequency grid points.
- np_interp_Aint
Number of grid points A_w should be interpolated on before G_w is calculated. The interpolation is performed on a linear grid with np_interp_A points from min(w_points) to max(w_points).
- np_omegaint
Number of equidistant grid points of the output Green function.
- w_minfloat
Start point of output Green function.
- w_maxfloat
End point of output Green function.
- broadening_factorfloat
Factor multiplying the broadening \(i\Delta\omega\)
- Returns:
- G_wGfReFreq
TRIQS retarded Green function.
- triqs_maxent.maxent_util.get_G_tau_from_A_w(A_w, w_points, beta, np_tau)[source]
Calculate \(G(\tau)\) for a given \(A(\omega)\).
- Parameters:
- A_warray
Real-frequency spectral function.
- w_pointsarray or maxent mesh
Real-frequency grid points.
- betafloat
Inverse Temperature.
- np_tauint
Number of equidistant grid points of the output Green function. The tau grid runs from 0 to beta.
- Returns:
- G_tauGfImTime
TRIQS imaginary-time Green function.
- triqs_maxent.maxent_util.numder(fun, x, delta=1e-06)[source]
Calculate the numerical derivative (i.e., Jacobian) of fun around x.
- Parameters:
- funfunction
a function \(\mathbb{R}^n \to \mathbb{R}\)
- xarray
the function argument where the numerical derivative should be evaluated
- deltafloat
the \(\Delta x\) that is used in the approximation of the derivative
- triqs_maxent.maxent_util.check_der(f, d, around, renorm=False, prec=1e-08, name='')[source]
check whether d is the analytical derivative of f by comparing with the numerical derivative
- Parameters:
- ffunction
we want to calculate the derivative of this function; a function \(\mathbb{R}^n \to \mathbb{R}\) of \(x\)
- dfunction
a function \(\mathbb{R}^n \to \mathbb{R}^n\) which gives the analytic derivative of \(f\) with respect to the elements of \(x\)
- renormbool or float
if bool: if False, do not renormalize, if True: renormalize by the function value; if float, renormalize by the value of the float; this allows to get some kind of relative error
- precfloat
the precision of the check, i.e. if the error is larger than
prec
, a warning will be issued- namestr
the name; this will be used in the error message if the derivatives are not equal to allow you to identify the culprit