solve() parameters¶
-
Solver.
solve
(**params_kw)[source] Solve the impurity problem. If
measure_G_tau
(default =True
),G_iw
andSigma_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
andSigma_iw
be calculated?perform_tail_fit : boolean, optional, default =
False
Should the tails of
Sigma_iw
andG_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 = NoneKnown 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)) |