solve() parameters

Solver.solve(**params_kw)[source]

Solve the impurity problem. If measure_G_tau (default = True), G_iw and Sigma_iw will be calculated and their tails fitted. In addition to the solver parameters, parameters to control the tail fitting can be provided.

Parameters:

params_kw : dict {‘param’:value} that is passed to the core solver.

Two required parameters are
  • h_int (Operator object): the local Hamiltonian of the impurity problem to be solved,
  • n_cycles (int): number of measurements to be made.

perform_post_proc : boolean, optional, default = True

Should G_iw and Sigma_iw be calculated?

perform_tail_fit : boolean, optional, default = False

Should the tails of Sigma_iw and G_iw be fitted?

fit_max_moment : integer, optional, default = 3

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

fit_min_n : integer, optional, default = int(0.8 * self.n_iw)

Index of iw from which to start fitting.

fit_max_n : integer, optional, default = n_iw

Index of iw to fit until.

Parameter Name Type Default Documentation
h_int triqs_cthyb::many_body_op_t Interacting part of the atomic Hamiltoniann type: Operator
n_cycles int Number of QMC cycles
partition_method std::string “autopartition” Partition methodn type: str
quantum_numbers std::vector<many_body_op_t> std::vector<many_body_op_t>{} Quantum numbersn type: list(Operator)n default: []
loc_n_min int 0 Restrict local Hilbert space to states with at least this number of particlesn default: 0
loc_n_max int INT_MAX Restrict local Hilbert space to states with at most this number of particlesn default: INT_MAX
length_cycle int 50 Length of a single QMC cyclen default: 50
n_warmup_cycles int 5000 Number of cycles for thermalizationn default: 5000
random_seed int 34788+928374*mpi::communicator().rank() Seed for random number generatorn default: 34788 + 928374 * MPI.rank
random_name std::string “” Name of random number generatorn type: str
max_time int -1 Maximum runtime in seconds, use -1 to set infiniten default: -1 = infinite
verbosity int ((mpi::communicator().rank()==0)?3:0) Verbosity leveln default: 3 on MPI rank 0, 0 otherwise.
move_shift bool true Add shifting an operator as a move?
move_double bool true Add double insertions as a move?
use_trace_estimator bool false Calculate the full trace or use an estimate?
measure_G_tau bool true Measure G(tau)?
measure_G_l bool false Measure G_l (Legendre)?
measure_O_tau std::optional<std::pair<many_body_op_t, many_body_op_t> > std::optional<std::pair<many_body_op_t,many_body_op_t>>{} Measure O_tau by insertion
measure_O_tau_min_ins int 10 Minumum of operator insertions in: O_tau by insertion measure
measure_G2_tau bool false Measure G^4(tau,tau’,tau’‘) with three fermionic times.
measure_G2_iw bool false Measure G^4(inu,inu’,inu’‘) with three fermionic frequencies.
measure_G2_iw_nfft bool false Measure G^4(inu,inu’,inu’‘) with three fermionic frequencies.
measure_G2_iw_pp bool false Measure G^4(iomega,inu,inu’) within the particle-particle channel.
measure_G2_iw_pp_nfft bool false Measure G^4(iomega,inu,inu’) within the particle-particle channel.
measure_G2_iw_ph bool false Measure G^4(iomega,inu,inu’) within the particle-hole channel.
measure_G2_iw_ph_nfft bool false Measure G^4(iomega,inu,inu’) within the particle-hole channel.
measure_G2_iwll_pp bool false Measure G^2(iomega,l,l’) within the particle-particle channel.
measure_G2_iwll_ph bool false Measure G^2(iomega,l,l’) within the particle-hole channel.
measure_G2_block_order triqs_cthyb::block_order block_order::AABB Order of block indices in the definition of G^2.
measure_G2_blocks std::set<std::pair<std::string, std::string> > (std::set<std::pair<std::string,std::string>>{}) List of block index pairs of G^2 to measure.n default: measure all blocks
measure_G2_n_tau int 10 Number of imaginary time slices for G^4 measurement.
measure_G2_n_bosonic int 30 Number of bosonic Matsubara frequencies for G^4 measurement.
measure_G2_n_fermionic int 30 Number of fermionic Matsubara frequencies for G^4 measurement.
measure_G2_n_l int 20 Number of Legendre coefficients for G^4(iomega,l,l’) measurement.
measure_G2_iwll_nfft_buf_size int 100 NFFT buffer size for G^4(iomega,l,l’) measurement.
nfft_buf_sizes std::map<std::string, int> (std::map<std::string,int>{}) NFFT buffer sizes for different blocksn default: 100 for every block
measure_pert_order bool false Measure perturbation order?
measure_density_matrix bool false Measure the reduced impurity density matrix?
use_norm_as_weight bool false Use the norm of the density matrix in the weight if true, otherwise use Trace
performance_analysis bool false Analyse performance of trace computation with histograms (developers only)?
proposal_prob std::map<std::string, double> (std::map<std::string,double>{}) Operator insertion/removal probabilities for different blocksn type: dict(str:float)n default: {}
move_global std::map<std::string, indices_map_t> (std::map<std::string,indices_map_t>{}) List of global moves (with their names).n Each move is specified with an index substitution dictionary.n type: dict(str : dict(indices : indices))n default: {}
move_global_prob double 0.05 Overall probability of the global moves
imag_threshold double 1.e-15 Threshold below which imaginary components of Delta and h_loc are set to zero
det_init_size int 100 The maximum size of the determinant matrix before a resize
det_n_operations_before_check int 100 Max number of ops before the test of deviation of the det, M^-1 is performed.
det_precision_warning double 1.e-8 Threshold for determinant precision warnings
det_precision_error double 1.e-5 Threshold for determinant precision error
det_singular_threshold double -1 Bound for the determinant matrix being singular, abs(det) > singular_threshold. If <0, it is !isnormal(abs(det))