TRIQS/triqs_ctseg unstable
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
69
71 int n_warmup_cycles = 5000;
72
74 int random_seed = 34788 + 928374 * mpi::communicator().rank();
75
77 std::string random_name = "";
78
80 int max_time = -1;
81
83 int verbosity = mpi::communicator().rank() == 0 ? 3 : 0;
84
85 // -------- Move control --------------
86
89
92
95
98
100 bool move_move_segment = true;
101
104
107
110
113
116
119
122
123 // -------- Measure control --------------
124
127
129 bool measure_G_tau = true;
130
132 bool measure_F_tau = false;
133
135 bool measure_densities = true;
136
139
141 bool measure_nn_static = false;
142
144 bool measure_nn_tau = false;
145
147 bool measure_nn_nu_dlr = false;
148
150 bool measure_Sperp_tau = false;
151
153 bool measure_state_hist = false;
154
156 bool measure_g2w = false;
157
159 bool measure_g3w = false;
160
161 // -------- Misc parameters --------------
162
166 double imag_threshold = 1.e-13;
167
169 int det_init_size = 100;
170
173
175 double det_precision_warning = 1.e-8;
176
178 double det_precision_error = 1.e-5;
179
182
185
187 bool visualize_config = false;
188 };
189
191 struct params_t : constr_params_t, solve_params_t {
192 params_t(constr_params_t const &constr_params_, solve_params_t const &solve_params_)
193 : constr_params_t{constr_params_}, solve_params_t{solve_params_} {}
194 };
195
197 void h5_write(h5::group h5group, std::string subgroup_name, constr_params_t const &c);
198
200 void h5_read(h5::group h5group, std::string subgroup_name, constr_params_t &c);
201
203 void h5_write(h5::group h5group, std::string subgroup_name, solve_params_t const &c);
204
206 void h5_read(h5::group h5group, std::string subgroup_name, solve_params_t &c);
207
208} // 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:109
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:94
bool move_move_segment
Whether to perform the move move segment.
Definition params.hpp:100
bool measure_nn_static
Whether to measure .
Definition params.hpp:141
bool move_swap_spin_lines
Whether to perform the move swap spin lines.
Definition params.hpp:121
bool measure_F_tau
Whether to measure .
Definition params.hpp:132
bool measure_average_sign
Whether to measure the average sign.
Definition params.hpp:138
double det_singular_threshold
Bound for the determinant matrix being singular (if , checks for subnormal numbers).
Definition params.hpp:181
int verbosity
Verbosity level.
Definition params.hpp:83
bool move_remove_segment
Whether to perform the move remove segment.
Definition params.hpp:91
bool visualize_config
Output characteristic configurations in a separate file.
Definition params.hpp:187
int n_warmup_cycles
Number of cycles for thermalization.
Definition params.hpp:71
double dlr_omega_max
DLR frequency cutoff.
Definition params.hpp:49
bool measure_g2w
Whether to measure three-point correlation function.
Definition params.hpp:156
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:153
bool measure_Sperp_tau
Whether to measure .
Definition params.hpp:150
bool measure_nn_nu_dlr
Whether to measure .
Definition params.hpp:147
int histogram_max_order
Maximum order for the perturbation order histograms.
Definition params.hpp:184
double det_precision_warning
Threshold for determinant precision warnings.
Definition params.hpp:175
bool move_double_remove_segment
Whether to perform the move double remove segment.
Definition params.hpp:97
bool measure_nn_tau
Whether to measure .
Definition params.hpp:144
bool move_insert_segment
Whether to perform the move insert segment.
Definition params.hpp:88
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:172
bool measure_g3w
Whether to measure four-point correlation function.
Definition params.hpp:159
int det_init_size
The maximum size of the determinant matrix before a resize.
Definition params.hpp:169
double det_precision_error
Threshold for determinant precision error.
Definition params.hpp:178
bool move_regroup_spin_segment
Whether to perform the move remove spin segment.
Definition params.hpp:118
int max_time
Maximum runtime in seconds, use -1 to set infinite.
Definition params.hpp:80
int random_seed
Seed for random number generator.
Definition params.hpp:74
std::string random_name
Name of random number generator.
Definition params.hpp:77
bool measure_G_tau
Whether to measure .
Definition params.hpp:129
bool move_regroup_segment
Whether to perform the move group into spin segment.
Definition params.hpp:106
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:115
bool move_split_segment
Whether to perform the move split segment.
Definition params.hpp:103
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:126
bool measure_densities
Whether to measure densities.
Definition params.hpp:135
bool move_remove_spin_segment
Whether to perform the move remove spin segment.
Definition params.hpp:112
int n_w_f_vertex
Number of fermionic M-frequency points on which to measure vertex functions.
Definition params.hpp:58