TRIQS/triqs_ctseg 4.0.0
A TRIQS application
Loading...
Searching...
No Matches
params.hpp
1// Copyright (c) 2022--present, The Simons Foundation
2// Copyright (c) 2022--present, Max Planck Institute for Polymer Research, Mainz, Germany
3// This file is part of TRIQS/ctseg and is licensed under the terms of GPLv3 or later.
4// SPDX-License-Identifier: GPL-3.0-or-later
5// See LICENSE in the root of this distribution for details.
6
7#pragma once
8
9#include <triqs/gfs.hpp>
10#include <triqs/operators/many_body_operator.hpp>
11using namespace triqs::gfs;
12
13namespace triqs_ctseg {
14
17
19 double beta;
20
22 gf_struct_t gf_struct;
23
25 int n_tau = 10001;
26
28 int n_tau_bosonic = 10001;
29 };
30
31 //---------------------------------------------
32
35
37 triqs::operators::many_body_operator h_int;
38
40 triqs::operators::many_body_operator h_loc0;
41
43 int n_tau_G = 0;
44
46 int n_tau_chi2 = 0;
47
49 double dlr_omega_max = 100;
50
52 double dlr_epsilon = 1e-8;
53
55 int n_w_b_vertex = 10;
56
58 int n_w_f_vertex = 10;
59
62
64 int length_cycle = 50;
65
67 int n_warmup_cycles = 5000;
68
70 int random_seed = 34788 + 928374 * mpi::communicator().rank();
71
73 std::string random_name = "";
74
76 int max_time = -1;
77
79 int verbosity = mpi::communicator().rank() == 0 ? 3 : 0;
80
81 // -------- Move control --------------
82
85
88
91
94
96 bool move_move_segment = true;
97
99 bool move_split_segment = true;
100
103
106
109
112
115
118
119 // -------- Measure control --------------
120
123
125 bool measure_G_tau = true;
126
128 bool measure_F_tau = false;
129
131 bool measure_densities = true;
132
135
137 bool measure_nn_static = false;
138
140 bool measure_nn_tau = false;
141
143 bool measure_nn_nu_dlr = false;
144
146 bool measure_Sperp_tau = false;
147
149 bool measure_state_hist = false;
150
152 bool measure_g2w = false;
153
155 bool measure_g3w = false;
156
157 // -------- Misc parameters --------------
158
162 double imag_threshold = 1.e-13;
163
165 int det_init_size = 100;
166
169
171 double det_precision_warning = 1.e-8;
172
174 double det_precision_error = 1.e-5;
175
178
181
183 bool visualize_config = false;
184 };
185
187 struct params_t : constr_params_t, solve_params_t {
188 params_t(constr_params_t const &constr_params_, solve_params_t const &solve_params_)
189 : constr_params_t{constr_params_}, solve_params_t{solve_params_} {}
190 };
191
193 void h5_write(h5::group h5group, std::string subgroup_name, constr_params_t const &c);
194
196 void h5_read(h5::group h5group, std::string subgroup_name, constr_params_t &c);
197
199 void h5_write(h5::group h5group, std::string subgroup_name, solve_params_t const &c);
200
202 void h5_read(h5::group h5group, std::string subgroup_name, solve_params_t &c);
203
204} // namespace triqs_ctseg
Parameters used for constructing the solver class.
Definition params.hpp:16
gf_struct_t gf_struct
Structure of the Green's function (names and sizes of blocks).
Definition params.hpp:22
int n_tau_bosonic
Number of time slices for bosonic functions.
Definition params.hpp:28
int n_tau
Number of time slices for fermionic functions.
Definition params.hpp:25
double beta
Inverse temperature .
Definition params.hpp:19
Parameters passed to the solve() method of the solver class.
Definition params.hpp:34
bool move_insert_spin_segment
Whether to perform the move insert spin segment.
Definition params.hpp:105
int n_tau_G
Number of points on which to measure / (defaults to n_tau).
Definition params.hpp:43
bool move_double_insert_segment
Whether to perform the move double insert segment.
Definition params.hpp:90
bool move_move_segment
Whether to perform the move move segment.
Definition params.hpp:96
bool measure_nn_static
Whether to measure .
Definition params.hpp:137
bool move_swap_spin_lines
Whether to perform the move swap spin lines.
Definition params.hpp:117
bool measure_F_tau
Whether to measure .
Definition params.hpp:128
bool measure_average_sign
Whether to measure the average sign.
Definition params.hpp:134
double det_singular_threshold
Bound for the determinant matrix being singular (if , checks for subnormal numbers).
Definition params.hpp:177
int verbosity
Verbosity level.
Definition params.hpp:79
bool move_remove_segment
Whether to perform the move remove segment.
Definition params.hpp:87
bool visualize_config
Output characteristic configurations in a separate file.
Definition params.hpp:183
int n_warmup_cycles
Number of cycles for thermalization.
Definition params.hpp:67
double dlr_omega_max
DLR frequency cutoff.
Definition params.hpp:49
bool measure_g2w
Whether to measure three-point correlation function.
Definition params.hpp:152
triqs::operators::many_body_operator h_loc0
Quandratic part of the local Hamiltonian (including chemical potential).
Definition params.hpp:40
double dlr_epsilon
DLR precision.
Definition params.hpp:52
int n_w_b_vertex
Number of bosonic M-frequency points on which to measure vertex functions.
Definition params.hpp:55
bool measure_state_hist
Whether to measure state histograms.
Definition params.hpp:149
bool measure_Sperp_tau
Whether to measure .
Definition params.hpp:146
bool measure_nn_nu_dlr
Whether to measure .
Definition params.hpp:143
int histogram_max_order
Maximum order for the perturbation order histograms.
Definition params.hpp:180
double det_precision_warning
Threshold for determinant precision warnings.
Definition params.hpp:171
bool move_double_remove_segment
Whether to perform the move double remove segment.
Definition params.hpp:93
bool measure_nn_tau
Whether to measure .
Definition params.hpp:140
bool move_insert_segment
Whether to perform the move insert segment.
Definition params.hpp:84
int n_cycles
Number of QMC cycles.
Definition params.hpp:61
int det_n_operations_before_check
Max number of ops before testing the accuracy of and .
Definition params.hpp:168
bool measure_g3w
Whether to measure four-point correlation function.
Definition params.hpp:155
int det_init_size
The maximum size of the determinant matrix before a resize.
Definition params.hpp:165
double det_precision_error
Threshold for determinant precision error.
Definition params.hpp:174
bool move_regroup_spin_segment
Whether to perform the move remove spin segment.
Definition params.hpp:114
int max_time
Maximum runtime in seconds, use -1 to set infinite.
Definition params.hpp:76
int random_seed
Seed for random number generator.
Definition params.hpp:70
std::string random_name
Name of random number generator.
Definition params.hpp:73
bool measure_G_tau
Whether to measure .
Definition params.hpp:125
bool move_regroup_segment
Whether to perform the move group into spin segment.
Definition params.hpp:102
triqs::operators::many_body_operator h_int
Quartic part of the local Hamiltonian.
Definition params.hpp:37
int length_cycle
Length of a single QMC cycle.
Definition params.hpp:64
bool move_split_spin_segment
Whether to perform the move insert spin segment.
Definition params.hpp:111
bool move_split_segment
Whether to perform the move split segment.
Definition params.hpp:99
int n_tau_chi2
Number of points on which to measure 2-point functions (defaults to n_tau_bosonic....
Definition params.hpp:46
bool measure_pert_order
Whether to measure the perturbation order histograms (order in Delta and Jperp).
Definition params.hpp:122
bool measure_densities
Whether to measure densities.
Definition params.hpp:131
bool move_remove_spin_segment
Whether to perform the move remove spin segment.
Definition params.hpp:108
int n_w_f_vertex
Number of fermionic M-frequency points on which to measure vertex functions.
Definition params.hpp:58