TRIQS/triqs_ctint 4.0.0
A TRIQS application
Loading...
Searching...
No Matches
params.hpp
1// Copyright (c) 2017--present, The Simons Foundation
2// This file is part of TRIQS/ctint and is licensed under the terms of GPLv3 or later.
3// SPDX-License-Identifier: GPL-3.0-or-later
4// See LICENSE in the root of this distribution for details.
5
6#pragma once
7
8#include "./types.hpp"
9
10namespace triqs_ctint {
11
14
16 int n_tau = 5001;
17
19 double dlr_wmax;
20
22 double dlr_eps = 1e-10;
23
25 double beta;
26
28 gf_struct_t gf_struct;
29
31 bool use_D = false;
32
34 bool use_Jperp = false;
35
38
40 int n_blocks() const { return gf_struct.size(); }
41
43 auto block_names() const {
44 std::vector<std::string> v;
45 for (auto const &bl : gf_struct) v.push_back(bl.first);
46 return v;
47 }
48
50 friend void h5_write(h5::group h5group, std::string subgroup_name, constr_params_t const &cp);
51
53 friend void h5_read(h5::group h5group, std::string subgroup_name, constr_params_t &cp);
54 };
55
58
59 // ----------- System Specific -----------
60
62 many_body_operator h_int;
63
64 // ----------- QMC Specific -----------
65
67 int n_s = 2;
68
70 alpha_t alpha;
71
74
76 int length_cycle = 100;
77
79 int n_warmup_cycles = 5000;
80
82 int random_seed = 34788 + 928374 * mpi::communicator().rank();
83
85 std::string random_name = "";
86
89
91 std::vector<int> insertion_types = {};
92
95
97 int max_time = -1;
98
100 int max_order = -1;
101
103 int verbosity = mpi::communicator().rank() == 0 ? 3 : 0;
104
106 bool rethrow_exception = true;
107
108 // ----------- Measurements -----------
109
111 bool measure_sign_only = false;
112
115
117 bool measure_average_k = true;
118
121
123 bool measure_histogram = false;
124
126 bool measure_density = true;
127
129 bool measure_M_tau = true;
130
132 bool measure_M_iw = false;
133
135 bool measure_M4_iw = false;
137 bool measure_M4pp_iw = false;
139 bool measure_M4ph_iw = false;
141 int n_iW_M4 = 32;
143 int n_iw_M4 = 32;
144
146 bool measure_M3pp_iw = false;
148 bool measure_M3ph_iw = false;
150 int n_iw_M3 = 64;
152 int n_iW_M3 = 32;
154 bool measure_M3pp_tau = false;
156 bool measure_M3ph_tau = false;
158 bool measure_M3xph_tau = false;
160 int n_tau_M3 = 201;
161
163 bool measure_chi2pp_tau = false;
165 bool measure_chi2ph_tau = false;
167 int n_tau_chi2 = 201;
169 int n_iw_chi2 = 32;
170
172 bool measure_chiAB_tau = false;
174 std::vector<many_body_operator> chi_A_vec = {};
176 std::vector<many_body_operator> chi_B_vec = {};
177
179 int nfft_buf_size = 100000;
180
182 double nfft_tol = 1e-8;
183
185 bool post_process = true;
186
188 int det_init_size = 1000;
189
192
194 double det_precision_warning = 1.e-8;
195
197 double det_precision_error = 1.e-5;
198
201
203 friend void h5_write(h5::group h5group, std::string subgroup_name, solve_params_t const &sp);
204
206 friend void h5_read(h5::group h5group, std::string subgroup_name, solve_params_t &sp);
207 };
208
210 struct params_t : constr_params_t, solve_params_t {
211 params_t() = default;
212 params_t(constr_params_t const &constr_params_, solve_params_t const &solve_params_)
213 : constr_params_t(constr_params_), solve_params_t(solve_params_) {}
214 };
215
216} // namespace triqs_ctint
Parameters used for constructing the solver class.
Definition params.hpp:13
double dlr_eps
DLR error tolerance for the single-particle quantities.
Definition params.hpp:22
friend void h5_write(h5::group h5group, std::string subgroup_name, constr_params_t const &cp)
Write constr_params_t to hdf5.
Definition params.cpp:10
int n_tau_dynamical_interactions
Number of imaginary-time points for and .
Definition params.hpp:37
int n_tau
Number of imaginary-time points for the single-particle quantities.
Definition params.hpp:16
bool use_Jperp
Use a dynamic spin-spin interaction?
Definition params.hpp:34
int n_blocks() const
Number of blocks of the Green's function.
Definition params.hpp:40
auto block_names() const
Names of the blocks of the Green's function.
Definition params.hpp:43
double beta
Inverse temperature .
Definition params.hpp:25
gf_struct_t gf_struct
Structure of the Green's function (names and sizes of blocks).
Definition params.hpp:28
friend void h5_read(h5::group h5group, std::string subgroup_name, constr_params_t &cp)
Read constr_params_t from hdf5.
Definition params.cpp:22
bool use_D
Use a dynamic density-density interaction?
Definition params.hpp:31
double dlr_wmax
DLR bandwidth cutoff for the single-particle quantities.
Definition params.hpp:19
Parameters passed to the solve method of the solver class.
Definition params.hpp:57
bool rethrow_exception
Catch exceptions on the nodes and rethrow them on rank 0?
Definition params.hpp:106
int n_iw_chi2
Number of positive Matsubara frequencies in .
Definition params.hpp:169
int n_tau_chi2
Number of imaginary-time points in .
Definition params.hpp:167
std::vector< many_body_operator > chi_A_vec
List of all operators .
Definition params.hpp:174
std::string random_name
Name of the random number generator.
Definition params.hpp:85
bool measure_density
Measure the density by operator insertion?
Definition params.hpp:126
friend void h5_read(h5::group h5group, std::string subgroup_name, solve_params_t &sp)
Read solve_params_t from hdf5.
Definition params.cpp:83
int n_iw_M3
Number of positive fermionic Matsubara frequencies in .
Definition params.hpp:150
bool measure_chiAB_tau
Measure by insertion?
Definition params.hpp:172
bool measure_M_tau
Measure ?
Definition params.hpp:129
double det_precision_error
Threshold for determinant precision errors.
Definition params.hpp:197
friend void h5_write(h5::group h5group, std::string subgroup_name, solve_params_t const &sp)
Write solve_params_t to hdf5.
Definition params.cpp:34
int n_tau_M3
Number of imaginary-time points in .
Definition params.hpp:160
int max_order
Maximum perturbation order accepted during insertion and removal moves (use -1 for unlimited).
Definition params.hpp:100
bool measure_chi2ph_tau
Measure by insertion?
Definition params.hpp:165
int length_cycle
Length of a single QMC cycle.
Definition params.hpp:76
int det_init_size
The maximum size of the determinant matrix before a resize.
Definition params.hpp:188
bool post_process
Perform post-processing?
Definition params.hpp:185
bool use_auxiliary_spin_flip
Use auxiliary spin-flip insertion (requires )?
Definition params.hpp:94
int n_iW_M4
Number of positive bosonic Matsubara frequencies in .
Definition params.hpp:141
double nfft_tol
Tolerance for the NFFT transform.
Definition params.hpp:182
double det_singular_threshold
Bound for the determinant matrix being singular (if , checks for subnormal numbers instead).
Definition params.hpp:200
double det_precision_warning
Threshold for determinant precision warnings.
Definition params.hpp:194
bool measure_M_iw
Measure using NFFT?
Definition params.hpp:132
int max_time
Maximum runtime in seconds, use -1 to set infinite.
Definition params.hpp:97
bool measure_auto_corr_time
Measure the auto-correlation time?
Definition params.hpp:120
bool measure_M3xph_tau
Measure ?
Definition params.hpp:158
int n_s
Number of auxiliary spins.
Definition params.hpp:67
bool measure_histogram
Measure the perturbation-order distribution?
Definition params.hpp:123
std::vector< int > insertion_types
Types of insertions to use.
Definition params.hpp:91
int n_cycles
Number of QMC cycles.
Definition params.hpp:73
bool measure_chi2pp_tau
Measure by insertion?
Definition params.hpp:163
bool measure_M3ph_tau
Measure ?
Definition params.hpp:156
bool measure_M4pp_iw
Measure using NFFT?
Definition params.hpp:137
int verbosity
Verbosity level.
Definition params.hpp:103
int n_iW_M3
Number of positive bosonic Matsubara frequencies in .
Definition params.hpp:152
bool measure_M4_iw
Measure using NFFT?
Definition params.hpp:135
bool measure_M4ph_iw
Measure using NFFT?
Definition params.hpp:139
bool measure_M3ph_iw
Measure ?
Definition params.hpp:148
alpha_t alpha
The tensor used in the determinantal expansion.
Definition params.hpp:70
bool measure_average_k
Measure the average perturbation order?
Definition params.hpp:117
many_body_operator h_int
Interacting part of the local Hamiltonian.
Definition params.hpp:62
bool measure_sign_only
Measure the sign only?
Definition params.hpp:111
int nfft_buf_size
Size of the NFFT buffer.
Definition params.hpp:179
int n_iw_M4
Number of positive fermionic Matsubara frequencies in .
Definition params.hpp:143
std::vector< many_body_operator > chi_B_vec
List of all operators .
Definition params.hpp:176
int n_warmup_cycles
Number of cycles for thermalization.
Definition params.hpp:79
bool measure_M3pp_iw
Measure ?
Definition params.hpp:146
int det_n_operations_before_check
Maximum number of operations before testing the accuracy of and .
Definition params.hpp:191
bool measure_M3pp_tau
Measure ?
Definition params.hpp:154
bool use_double_insertion
Use double insertion?
Definition params.hpp:88
int random_seed
Seed for the random number generator.
Definition params.hpp:82
bool measure_average_sign
Measure the Monte-Carlo sign?
Definition params.hpp:114