dmft_tools.solvers.abstractdmftsolver.AbstractDMFTSolver

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]

Bases: ABC

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

__init__(general_params, solver_params, sum_k, icrsh, h_int, iteration_offset, deg_orbs_ftps, gw_params=None, advanced_params=None)[source]
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_momentsndarray.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

_init_ImFreq_objects()[source]

Initialize all ImFreq objects

_init_ReFreq_objects()[source]

Initialize all ReFreq objects

abstract postprocess()[source]

Postprocess the DMFT impurity problem

abstract solve(**kwargs)[source]

Solve the DMFT impurity problem

__init__(general_params, solver_params, ...)

postprocess()

Postprocess the DMFT impurity problem

solve(**kwargs)

Solve the DMFT impurity problem