# [solver]: solver specific parameters

Here are the parameters that are uniquely dependent on the solver chosen. Some parameters are used within solid_dmft and some are passed directly into the triqs solver. To see which parameters were passed to the solver for a given calculation, look at the triqs_solver_params in DMFT_input/solver in the h5 archive. Solver-specific parameters are listed in the respective sections.

type

type= str;mandatory

type of solver chosen for the calculation, currently supports:

‘cthyb’

‘ctint’

‘ctseg’

‘hubbardI’

‘ftps’

‘hartree’

idx_impurities

type= list of int;default= None

list of impurities this solver is supposed to solve

## cthyb

crm_dyson_solver

type= bool;default= False

use CRM Dyson solver to extract Sigma_imp from G(tau) (conflict with legendre_fit and tail_fit) set dlr_wmax and dlr_eps parameters in general section to use

- crm_dlr_wmax: float;
**default**= None customized dlr_wmax for the crm_dyson_solver. Only used if crm_dyson_solver = True. Set to dlr_wmax if crm_dlr_wmax = None.

- crm_dlr_eps: float;
**default**= None customized dlr_eps for the crm_dyson_solver. Only used if crm_dyson_solver = True. Set to dlr_eps if crm_dlr_eps = None.

delta_interface

type= bool;default= False

use delta interface in cthyb instead of input G0

diag_delta

type= bool;default= False

approximate the hybridization function as diagonal when using the delta interface

fit_max_moment

type= int;default= None

max moment to be fitted. Only used if solver.perform_tail_fit = True

fit_max_n

type= int;default= None

number of highest matsubara frequency to fit. Only used if solver.perform_tail_fit = True

fit_max_w

type= float;default= None

highest matsubara frequency to fit. Only used if solver.perform_tail_fit = True

fit_min_n

type= int;default= None

number of start matsubara frequency to start with. Only used if solver.perform_tail_fit = True

fit_min_w

type= float;default= None

start matsubara frequency to start with. Only used if solver.perform_tail_fit = True

imag_threshold

type= float;default= 1e-14

threshold for imag part of G0_tau. be warned if symmetries are off in projection scheme imag parts can occur in G0_tau

legendre_fit

type= bool;default= False

filter noise of G(tau) with G_l, cutoff is taken from n_l

length_cycle

type= int;mandatory

length of each cycle; number of sweeps before measurement is taken

loc_n_max

type= int;default= None

Restrict local Hilbert space to states with at most this number of particles

loc_n_min

type= int;default= None

Restrict local Hilbert space to states with at least this number of particles

max_time

type= int;default= -1

maximum amount the solver is allowed to spend in each iteration

measure_chi_insertions

type= int;default= 100

number of insertation for measurement of chi

measure_chi

type= str;default= None

measure the dynamic suszeptibility of an operator O, chi(O,O(tau)) triqs.github.io/cthyb/unstable/guide/dynamic_susceptibility_notebook.html Possible values for this flag are:

‘SzSz’: spin susceptibility

‘NN’: occupation susceptibility

measure_density_matrix

type= bool;default= False

measures the impurity density matrix and sets also use_norm_as_weight to true

measure_G_l

type= bool;default= False

measure Legendre Greens function

measure_pert_order

type= bool;default= False

measure perturbation order histograms: triqs.github.io/cthyb/latest/guide/perturbation_order_notebook.html. The result is stored in the h5 archive under ‘DMFT_results’ at every iteration in the subgroups ‘pert_order_imp_X’ and ‘pert_order_total_imp_X’

move_double

type= bool;default= True

double moves in solver

move_shift

type= bool;default= False

shift moves in solver

n_cycles_tot

type= int;mandatory

total number of sweeps

n_l

type= int;default= None

number of Legendre coefficients. Needed if measure_G_l=True or legendre_fit=True

n_warmup_cycles

type= int;mandatory

number of warmup cycles before real measurement sets in

off_diag_threshold

type= float;default= 0.0

threshold for off-diag elements in Hloc0

perform_tail_fit

type= bool;default= False

tail fitting if legendre is off?

random_seed

type= str;default= None

if None; **default** seed by triqs.
If specified the int will be used for random seeds. Careful, this will give the same random
numbers on all mpi ranks.
You can also pass a string that will convert the keywords it or rank on runtime, e.g.,
34788 * it + 928374 * rank will convert each iteration the variables it and rank for the random
seed

## ctint

length_cycle

type= int;mandatory

length of each cycle; number of sweeps before measurement is taken

max_time

type= int;default= -1

maximum amount the solver is allowed to spend in each iteration

measure_pert_order

type= bool;default= False

measure perturbation order histograms: triqs.github.io/cthyb/latest/guide/perturbation_order_notebook.html. The result is stored in the h5 archive under ‘DMFT_results’ at every iteration in the subgroups ‘pert_order_imp_X’ and ‘pert_order_total_imp_X’

move_double

type= bool;default= True

double moves in solver

n_cycles_tot

type= int;mandatory

total number of sweeps

n_warmup_cycles

type= int;mandatory

number of warmup cycles before real measurement sets in

random_seed

type= str;default= None

if None; **default** seed by triqs.
If specified the int will be used for random seeds. Careful, this will give the same random
numbers on all mpi ranks.
You can also pass a string that will convert the keywords it or rank on runtime, e.g.,
34788 * it + 928374 * rank will convert each iteration the variables it and rank for the random
seed

## ctseg

crm_dyson_solver

type= bool;default= False

use CRM Dyson solver to extract Sigma_imp from G(tau) (conflict with legendre_fit and tail_fit) set dlr_wmax and dlr_eps parameters in general section to use

- crm_dlr_wmax: float;
**default**= None customized dlr_wmax for the crm_dyson_solver. Only used if crm_dyson_solver = True. Set to dlr_wmax if crm_dlr_wmax = None.

- crm_dlr_eps: float;
**default**= None customized dlr_eps for the crm_dyson_solver. Only used if crm_dyson_solver = True. Set to dlr_eps if crm_dlr_eps = None.

diag_delta

type= bool;default= False

approximate the hybridization function as diagonal when using the delta interface

fit_max_moment

type= int;default= None

max moment to be fitted. Only used if solver.perform_tail_fit = True

fit_max_n

type= int;default= None

number of highest matsubara frequency to fit. Only used if solver.perform_tail_fit = True

fit_max_w

type= float;default= None

highest matsubara frequency to fit. Only used if solver.perform_tail_fit = True

fit_min_n

type= int;default= None

number of start matsubara frequency to start with. Only used if solver.perform_tail_fit = True

fit_min_w

type= float;default= None

start matsubara frequency to start with. Only used if solver.perform_tail_fit = True

improved_estimator

type= bool;default= False

measure improved estimators Sigma_iw will automatically be calculated via http://dx.doi.org/10.1103/PhysRevB.85.205106

legendre_fit

type= bool;default= False

filter noise of G(tau) with G_l, cutoff is taken from n_l

length_cycle

type= int;mandatory

length of each cycle; number of sweeps before measurement is taken

max_time

type= int;default= -1

maximum amount the solver is allowed to spend in each iteration

measure_G_tau

type= bool;default= True

should the solver measure G(tau)?

measure_nn_tau

type= boold;default= False

measure two particle density-density correlation function (suszeptibility)

measure_pert_order

type= bool;default= False

measure perturbation order histograms: triqs.github.io/cthyb/latest/guide/perturbation_order_notebook.html. The result is stored in the h5 archive under ‘DMFT_results’ at every iteration in the subgroups ‘pert_order_imp_X’ and ‘pert_order_total_imp_X’

measure_state_hist

type= bool;default= False

measure state histogram, i.e. diagonal components of many body density matrix

n_cycles_tot

type= int;mandatory

total number of sweeps

n_l

type= int;default= None

number of Legendre coefficients. Needed if measure_G_l=True or legendre_fit=True

n_tau_bosonic

type= int;default= 10001

number imaginary time points for dynamic interactions

n_warmup_cycles

type= int;mandatory

number of warmup cycles before real measurement sets in

off_diag_threshold

type= float;default= 0.0

threshold for off-diag elements in Hloc0

perform_tail_fit

type= bool;default= False

tail fitting if legendre is off?

random_seed

type= str;default= None

if None; **default** seed by triqs.
If specified the int will be used for random seeds. Careful, this will give the same random
numbers on all mpi ranks.
You can also pass a string that will convert the keywords it or rank on runtime, e.g.,
34788 * it + 928374 * rank will convert each iteration the variables it and rank for the random
seed

## hubbardI

legendre_fit

type= bool;default= False

filter noise of G(tau) with G_l, cutoff is taken from n_l

measure_density_matrix

type= bool;default= False

measures the impurity density matrix and sets also use_norm_as_weight to true

measure_G_l

type= bool;default= False

measure Legendre Greens function

measure_G_tau

type= bool;default= True

should the solver measure G(tau)?

n_l

type= int;default= None

number of Legendre coefficients. needed if measure_G_l=True or legendre_fit=True

## ftps parameters

bath_fit

type= bool;mandatory

DiscretizeBath vs BathFitter

calc_me

type= bool;default= True

calculate only symmetry-inequivalent spins/orbitals, symmetrized afterwards

diag_delta

type= bool;default= False

option to remove off-diagonal terms in the hybridization function available for ftps

dmrg_maxm

type= int;default= 100

TODO: add description

dmrg_maxmB

type= int;default= 100

maximal bath-bath bond dimensions

dmrg_maxmI

type= int;default= 100

maximal imp-imp bond dimensions

dmrg_maxmIB

type= int;default= 100

maximal imp-bath bond dimensions

dmrg_tw

type= float;default1e-9

truncated weight for every link

dt

type= float;mandatory

time step

enforce_gap

type= list of float;default= None

enforce gap in DiscretizeBath between interval

ignore_weight

type= float;default= 0.0

ignore weight of peaks for bath fitter

maxm

type= int;default= 100

TODO: write description

maxmB

type= int;default= 100

maximal bath-bath bond dimensions

maxmI

type= int;default= 100

maximal imp-imp bond dimensions

maxmIB

type= int;default= 100

maximal imp-bath bond dimensions

n_bath

type= int;default= 0

number of bath sites

path_to_gs

type= string;default= None

location of GS if already present. Use ‘postprocess’ to skip solver and go directly to post-processing of previously terminated time-evolved state

ph_symm

type= bool;default= False

particle-hole symmetric problem

refine_factor

type= int;default= 1

rerun ftps cycle with increased accuracy

state_storage

type= string;default= ‘./’

location of large MPS states

sweeps

type= int;default= 10

Number of DMRG sweeps

tw

type= float;default1e-9

truncated weight for every link

## hartree

force_real

type= bool;default= True

force the self energy from Hartree fock to be real

method

type= str;default= “krylov”

method for root finder. Only used if one_shot=False, see scipy.optimize.root for options.

one_shot

type= bool;default= False

Perform a one-shot or self-consitent root finding in each DMFT step of the Hartree solver.

tol

type= float;default= 1e-5

tolerance for root finder if one_shot=False.

with_fock

type= bool;default= False

include Fock exchange terms in the self-energy