dmft_tools.solvers.abstractdmftsolver
abstract DMFT solver class for solid_dmft
- class dmft_tools.solvers.abstractdmftsolver.AbstractDMFTSolver(general_params, solver_params, sum_k, icrsh, h_int, iteration_offset, deg_orbs_ftps, gw_params=None, advanced_params=None)[source]
Abstract base class for DMFT solvers
This class defines the template for solvers for solving the DMFT impurity problem for the icrsh impurity.
- Parameters:
- general_paramuters: dict
general parameters as dict
- solver_params: dict
solver-specific parameters as dict
- sum_k: triqs.dft_tools.sumk object
SumkDFT instance
- icrsh: int
correlated shell index
- h_int: triqs.operator object
interaction Hamiltonian of correlated shell
- iteration_offset: int
number of iterations this run is based on
- static _crm_dyson_solver(G0_dlr_iw, G_dlr, Sigma_moments, deg_shells)[source]
Self-energy of every block from the CRM Dyson solver
Each degenerate shell is minimized once, for its first block, and the result is copied to the other blocks of the shell. Blocks that are in no degenerate shell are minimized individually.
- Parameters:
- G0_dlr_iwBlockGf on MeshDLRImFreq
non-interacting impurity Green’s function
- G_dlrBlockGf on MeshDLR
interacting impurity Green’s function
- Sigma_momentsdict of np.ndarray
high-frequency moments of Sigma per block,
[Sigma_0, (Sigma_1)]- deg_shellslist
degenerate shells of block names, i.e.
sum_k.deg_shells[ish]
- Returns:
- Sigma_dlrBlockGf on MeshDLRImFreq
self-energy without the constant
Sigma_moments[block][0]
- static _fit_tail_window(Sigma_iw, fit_min_n=None, fit_max_n=None, fit_min_w=None, fit_max_w=None, fit_max_moment=None, fit_known_moments=None)[source]
Fit a high frequency 1/(iw)^n expansion of Sigma_iw and replace the high frequency part with the fitted high frequency expansion.
Either give frequency window to fit on in terms of matsubara frequencies index (fit_min_n/fit_max_n) or value (fit_min_w/fit_max_w).
- Parameters:
- Sigma_iwGf
Self-energy.
- fit_min_nint, optional, default=int(0.8*len(Sigma_iw.mesh))
Matsubara frequency index from which tail fitting should start.
- fit_max_nint, optional, default=int(len(Sigma_iw.mesh))
Matsubara frequency index at which tail fitting should end.
- fit_min_wfloat, optional
Matsubara frequency from which tail fitting should start.
- fit_max_wfloat, optional
Matsubara frequency at which tail fitting should end.
- fit_max_momentint, optional
Highest moment to fit in the tail of Sigma_iw.
- fit_known_moments
ndarray.shape[order, Sigma_iw[0].target_shape], optional, default = None Known moments of Sigma_iw, given as an numpy ndarray
- Returns:
- tail_barrdict of arr
fitted tail of Sigma_iw
- static _gf_fit_tail_fraction(Gf, fraction=0.4, replace=None, known_moments=[])[source]
fits the tail of Gf object by making a polynomial fit of the Gf on the given fraction of the Gf mesh and replacing that part of the Gf by the fit
0.4 fits the last 40% of the Gf and replaces the part with the tail
- Parameters:
- GfBlockGf (Green’s function) object
- fraction: float, optional default 0.4
fraction of the Gf to fit
- replace: float, optional default fraction
fraction of the Gf to replace
- known_moments: np.array
known moments as numpy array
- Returns
- ——-
- Gf_fitBlockGf (Green’s function) object
fitted Gf
Classes
|
Abstract base class for DMFT solvers |