Solver options and accessors¶
The solver consists of one main object with a constructor and a solve()
method, and accessors.
The options of the constructor and solve()
method are used to give more information as to the desired run, such as number of Matsubara frequencies, number of Monte-Carlo cycles, or which observables have to be measured. The accessors are members of the solver class which are used both to set the inputs of the solver (like the non-interacting Green’s function G0_iw
or the dynamical interactions D0_iw
) and to read out the observables at the end of the computation (such as G_tau
, G_iw
or nn_iw
).
The options of the constructor are:
Parameter Name | Type | Default | Documentation |
---|---|---|---|
beta | double | – | Inverse temperature |
gf_struct | gf_struct_t | – | Structure of the GF (names, sizes of blocks) |
n_tau | int | 10001 | Number of time slices for \(Delta(\tau)\)/\(G(\tau)\)/\(F(\tau)\) |
n_tau_k | int | 10001 | Number of time slices for \(K(\tau)\) |
n_tau_jperp | int | 10001 | Number of time slices for \(J_\perp(\tau)\) |
n_tau_nn | int | 101 | Number of Legendre coefficients for G(l) |
n_w_b_nn | int | 32 | Number of bosonic Matsub. freqs for \(nn(i\omega)\), \(\mathcal{D}_0(i\omega)\), \(J_\perp\) |
n_iw | int | 1025 | Number of fermionic Matsubara frequencies for \(G_0(i\omega)\), \(G\), \(F\), \(\Sigma\) |
The options of the solve() method and the solver accessors are summarized below. They are identical in the C++ and Python interface.
C++ interface¶
Python interface¶
-
class
triqs_ctseg.
SolverCore
¶ Main solver class
Worker which runs the quantum Monte-Carlo simulation.
-
D0_iw
¶ Density-density retarded interactions \(\mathcal{D}^{\sigma\sigma'}_{0,ab}(i\Omega)\)
-
Delta_tau
¶ Hybridization function \(\Delta^\sigma_{ab}(\tau)\)
-
F_2w
¶ 3-point improved estimator (see measure_g2w)
-
F_3w
¶ 4-point improved estimator (see measure_g3w)
-
F_iw
¶ Improved estimator function \(F^\sigma_{ab}(i\omega)\) (see measure_gw)
-
F_l
¶ Improved estimator function in Legendre basis \(G^\sigma_{ab}(n)\) (see measure_gl)
-
F_tau
¶ Improved estimator function \(F^\sigma_{ab}(\tau)\) (see measure_gt)
-
G0_iw
¶ Weiss field \(\mathcal{G}^{\sigma}_{0,ab}(i\omega)\)
-
G_2w
¶ 3-point correlation function \(\chi^{\sigma\sigma'}_{abc}(i\omega,i\Omega)\) (see measure_g2w)
-
G_3w
¶ 4-point correlation function \(\chi^{\sigma\sigma'}_{abcd}(i\omega,i\omega',i\Omega)\) (see measure_g3w)
-
G_iw
¶ Impurity Green’s function \(G^\sigma_{ab}(i\omega)\) (see measure_gw)
-
G_l
¶ Impurity Green’s function in Legendre basis \(G^\sigma_{ab}(n)\) (see measure_gl)
-
G_tau
¶ Impurity Green’s function \(G^\sigma_{ab}(\tau)\) (see measure_gt)
-
Jperp_iw
¶ Dynamical spin-spin interaction, perpendicual components: \(\mathcal{J}_\perp(i\Omega)\)
-
Jperp_tau
¶ Dynamical spin-spin interactions \(\mathcal{J}_\perp(\tau)\)
-
K_tau
¶ Dynamical kernel \(K(\tau)\)
-
Kperpprime_tau
¶ Derivative of the dynamical kernel \(\partial_\tau K_\perp(\tau)\)
-
Kprime_tau
¶ Derivative of the dynamical kernel \(\partial_\tau K(\tau)\)
-
Sigma_iw
¶ Impurity self-energy \(\Sigma^\sigma_{ab}(i\omega)\) (see measure_gw)
-
average_sign
¶ Monte Carlo sign
-
chipm_tau
¶ Spin spin correlation function \(\langle s_+(\tau) s_-(0)\rangle\) (see measure_chipmt)
-
histogram
¶ histogram of hybridization perturbation order (see measure_hist)
-
histogram_composite
¶ histogram of \(\mathcal{J}_\perp\) perturbation order (see measure_hist_composite)
-
nn
¶ density-density static correlation \(\langle n^\sigma_a n^{\sigma'}_b \rangle\) (see measure_nn)
-
nn_iw
¶ Density-density correlation function \(\mathrm{FT}\left[\langle n^\sigma_{a}(\tau) n^{\sigma'}_{b}(0)\rangle\right]\) (see measure_nnw)
-
nn_tau
¶ Density-density correlation function \(\langle n^\sigma_{a}(\tau) n^{\sigma'}_{b}(0)\rangle\) (see measure_nnt)
-
percent_done
¶
-
sanity_check
()¶ Signature : (triqs_ctseg::solve_params_t p, int n_w, int n_w_b) -> None
-
solve
()¶ solve method: starts the Metropolis algorithm
Steps:
- extract \(\Delta^\sigma_{ab}(\tau)\) and \(\mu^\sigma_a\) from \(\mathcal{G}^\sigma_{ab}(i\omega)\)
- if \(\mathcal{D}^{\sigma\sigma'}_{0,ab}(i\Omega)\neq 0\), extract \(K(^{\sigma\sigma'}_{ab}\tau)\) and \(\partial_\tau K^{\sigma\sigma'}_{ab}(\tau)\) from \(\mathcal{D}^{\sigma\sigma'}_{0,ab}(i\Omega)\)
- if \(\mathcal{J}_{\perp,a}(i\Omega)\neq 0\), extract \(\partial_\tau K_{\perp,a}(\tau)\) from \(\mathcal{J}_{\perp,a}(i\Omega)\)
- add the moves and measures according to the parameters supplied by the user
- start the Monte-Carlo simulation
- finalize the Monte Carlo simulation
Parameter Name Type Default Documentation h_int triqs_ctseg::Op local Hamiltonian n_cycles int Number of QMC cycles length_cycle int 50 Length of a single QMC cycle n_warmup_cycles int 5000 Number of cycles for thermalization random_seed int 34788+928374*mpi::communicator().rank() Seed for random number generator random_name std::string ‘’ Name of random number generator max_time int -1 Maximum runtime in seconds, use -1 to set infinite verbosity int mpi::communicator().rank()==0?3:0 Verbosity level move_insert_segment bool true Whether to perform the move insert segment (see move_insert_segment) move_remove_segment bool true Whether to perform the move remove segment (see move_remove_segment) move_move bool false Whether to perform the move move segment (see move_move) move_swap_empty_lines bool false Whether to perform the move swap empty lines (see move_swap_empty_lines) move_group_into_spin_segment bool false Whether to perform the move group into spin segment (see move_group_into_spin_segment) move_split_spin_segment bool false Whether to perform the move split spin segment (see move_split_spin_segment) move_group_into_spin_segment2 bool false Whether to perform the move group into spin segment (see move_group_into_spin_segment2) move_split_spin_segment2 bool false Whether to perform the move split spin segment (see move_split_spin_segment2) keep_Jperp_negative bool true Whether to keep Jperp negative measure_gt bool true Whether to measure G(tau) (see measure_gt) measure_sign bool true Whether to measure MC sign (see measure_sign) measure_ft bool false Whether to measure improved estimator F(tau) (see measure_gt) (only isotropic spin-spin interactions if any) measure_gl bool false Whether to measure G(l) (Legendre) (see measure_gl) measure_fl bool false Whether to measure improved estimator F(l) (Legendre) (see measure_gl) (only isotropic spin-spin interactions if any) measure_gw bool false Whether to measure G(iomega) (see measure_gw) use_nfft_for_gw bool false Whether to use NFFT in the measurement of gw measure_fw bool false Whether to measure improved estimator F(iomega) (see measure_gw)(only isotropic spin-spin interactions if any) measure_g2w bool false Whether to measure two-frequency correlation function (see measure_g2w) use_nfft_for_Mw bool false Whether to use NFFT for the precomputation of Mw measure_f2w bool false Whether to measure two-frequency improved estimator (see measure_g2w) measure_g3w bool false Whether to measure three-frequency correlation function (see measure_g3w) measure_f3w bool false Whether to measure three-frequency improved estimator (see measure_g3w) measure_chipmt bool false Whether to measure chi_{+-}(tau) (see measure_chipmt) measure_nn bool false Whether to measure <nn> (see measure_nn) measure_nnt bool false Whether to measure langle n(tau)n(0)rangle (see measure_nnt) measure_nnw bool false Whether to measure chi(iomega) (see measure_nnw) evaluate_vertex bool false Whether to evaluate vertex functions (see evaluate_3w_vertex) measure_hist bool false Whether to measure the perturbation order histogram (see measure_hist) measure_hist_composite bool false Whether to measure the perturbation order histogram for bosonic lines (see measure_hist_composite) measure_statehist bool false Whether to measure histogram of impurity states (see measure_statehist) n_w_f_vertex int 10 Number of fermionic Matsubara frequencies for vertex functions n_w_b_vertex int 10 Number of bosonic Matsubara frequencies for vertex functions fname_gammaw std::string ‘gammaw.h5’ File name for 4-leg vertex gammaw fname_gammaw | std::string | ‘gammaw.h5’ | File name for 4-leg vertex gammaw |Warning: parameter nfft_threshold will not be used because the code has been compiled without NFFT support |hartree_shift std::vector<double> std::vector<double>{} Hartree shift of the chem pot
-
state_histogram
¶ histogram of the boundary states of the trace (see measure_statehist)
-