11 void h5_write(h5::group h5group, std::string subgroup_name,
constr_params_t const &c) {
13 h5::group grp = subgroup_name.empty() ? h5group : h5group.create_group(subgroup_name);
15 h5_write(grp,
"beta", c.beta);
16 h5_write(grp,
"gf_struct", c.gf_struct);
17 h5_write(grp,
"n_tau", c.n_tau);
18 h5_write(grp,
"n_tau_bosonic", c.n_tau_bosonic);
23 void h5_read(h5::group h5group, std::string subgroup_name,
constr_params_t &c) {
25 h5::group grp = subgroup_name.empty() ? h5group : h5group.open_group(subgroup_name);
27 h5_read(grp,
"beta", c.beta);
28 h5_read(grp,
"gf_struct", c.gf_struct);
29 h5_read(grp,
"n_tau", c.n_tau);
30 h5_read(grp,
"n_tau_bosonic", c.n_tau_bosonic);
35 void h5_write(h5::group h5group, std::string subgroup_name,
solve_params_t const &c) {
37 h5::group grp = subgroup_name.empty() ? h5group : h5group.create_group(subgroup_name);
39 h5_write(grp,
"h_int", c.h_int);
40 h5_write(grp,
"h_loc0", c.h_loc0);
41 h5_write(grp,
"n_tau_G", c.n_tau_G);
42 h5_write(grp,
"n_tau_chi2", c.n_tau_chi2);
43 h5_write(grp,
"dlr_omega_max", c.dlr_omega_max);
44 h5_write(grp,
"dlr_epsilon", c.dlr_epsilon);
45 h5_write(grp,
"n_w_b_vertex", c.n_w_b_vertex);
46 h5_write(grp,
"n_w_f_vertex", c.n_w_f_vertex);
47 h5_write(grp,
"n_cycles", c.n_cycles);
48 h5_write(grp,
"length_cycle", c.length_cycle);
49 h5_write(grp,
"n_warmup_cycles", c.n_warmup_cycles);
50 h5_write(grp,
"random_seed", c.random_seed);
51 h5_write(grp,
"random_name", c.random_name);
52 h5_write(grp,
"max_time", c.max_time);
53 h5_write(grp,
"verbosity", c.verbosity);
54 h5_write(grp,
"move_insert_segment", c.move_insert_segment);
55 h5_write(grp,
"move_remove_segment", c.move_remove_segment);
56 h5_write(grp,
"move_double_insert_segment", c.move_double_insert_segment);
57 h5_write(grp,
"move_double_remove_segment", c.move_double_remove_segment);
58 h5_write(grp,
"move_move_segment", c.move_move_segment);
59 h5_write(grp,
"move_split_segment", c.move_split_segment);
60 h5_write(grp,
"move_regroup_segment", c.move_regroup_segment);
61 h5_write(grp,
"move_insert_spin_segment", c.move_insert_spin_segment);
62 h5_write(grp,
"move_remove_spin_segment", c.move_remove_spin_segment);
63 h5_write(grp,
"move_split_spin_segment", c.move_split_spin_segment);
64 h5_write(grp,
"move_regroup_spin_segment", c.move_regroup_spin_segment);
65 h5_write(grp,
"move_swap_spin_lines", c.move_swap_spin_lines);
66 h5_write(grp,
"measure_pert_order", c.measure_pert_order);
67 h5_write(grp,
"measure_G_tau", c.measure_G_tau);
68 h5_write(grp,
"measure_F_tau", c.measure_F_tau);
69 h5_write(grp,
"measure_densities", c.measure_densities);
70 h5_write(grp,
"measure_average_sign", c.measure_average_sign);
71 h5_write(grp,
"measure_nn_static", c.measure_nn_static);
72 h5_write(grp,
"measure_nn_tau", c.measure_nn_tau);
73 h5_write(grp,
"measure_nn_nu_dlr", c.measure_nn_nu_dlr);
74 h5_write(grp,
"measure_Sperp_tau", c.measure_Sperp_tau);
75 h5_write(grp,
"measure_state_hist", c.measure_state_hist);
76 h5_write(grp,
"measure_g2w", c.measure_g2w);
77 h5_write(grp,
"measure_g3w", c.measure_g3w);
78 h5_write(grp,
"imag_threshold", c.imag_threshold);
79 h5_write(grp,
"det_init_size", c.det_init_size);
80 h5_write(grp,
"det_n_operations_before_check", c.det_n_operations_before_check);
81 h5_write(grp,
"det_precision_warning", c.det_precision_warning);
82 h5_write(grp,
"det_precision_error", c.det_precision_error);
83 h5_write(grp,
"det_singular_threshold", c.det_singular_threshold);
84 h5_write(grp,
"histogram_max_order", c.histogram_max_order);
85 h5_write(grp,
"visualize_config", c.visualize_config);
90 void h5_read(h5::group h5group, std::string subgroup_name,
solve_params_t &c) {
92 h5::group grp = subgroup_name.empty() ? h5group : h5group.open_group(subgroup_name);
94 h5_read(grp,
"h_int", c.h_int);
95 h5_read(grp,
"h_loc0", c.h_loc0);
96 h5_read(grp,
"n_tau_G", c.n_tau_G);
97 h5_read(grp,
"n_tau_chi2", c.n_tau_chi2);
98 h5_read(grp,
"dlr_omega_max", c.dlr_omega_max);
99 h5_read(grp,
"dlr_epsilon", c.dlr_epsilon);
100 h5_read(grp,
"n_cycles", c.n_cycles);
101 h5_read(grp,
"length_cycle", c.length_cycle);
102 h5_read(grp,
"n_warmup_cycles", c.n_warmup_cycles);
103 h5_read(grp,
"random_seed", c.random_seed);
104 h5_read(grp,
"random_name", c.random_name);
105 h5_read(grp,
"max_time", c.max_time);
106 h5_read(grp,
"verbosity", c.verbosity);
107 h5_read(grp,
"move_insert_segment", c.move_insert_segment);
108 h5_read(grp,
"move_remove_segment", c.move_remove_segment);
109 h5_read(grp,
"move_double_insert_segment", c.move_double_insert_segment);
110 h5_read(grp,
"move_double_remove_segment", c.move_double_remove_segment);
111 h5_read(grp,
"move_move_segment", c.move_move_segment);
112 h5_read(grp,
"move_split_segment", c.move_split_segment);
113 h5_read(grp,
"move_regroup_segment", c.move_regroup_segment);
114 h5_read(grp,
"move_insert_spin_segment", c.move_insert_spin_segment);
115 h5_read(grp,
"move_remove_spin_segment", c.move_remove_spin_segment);
116 h5_read(grp,
"move_split_spin_segment", c.move_split_spin_segment);
117 h5_read(grp,
"move_regroup_spin_segment", c.move_regroup_spin_segment);
118 h5_read(grp,
"move_swap_spin_lines", c.move_swap_spin_lines);
119 h5_read(grp,
"measure_pert_order", c.measure_pert_order);
120 h5_read(grp,
"measure_G_tau", c.measure_G_tau);
121 h5_read(grp,
"measure_F_tau", c.measure_F_tau);
122 h5_read(grp,
"measure_densities", c.measure_densities);
123 h5_read(grp,
"measure_average_sign", c.measure_average_sign);
124 h5_read(grp,
"measure_nn_static", c.measure_nn_static);
125 h5_read(grp,
"measure_nn_tau", c.measure_nn_tau);
126 h5_read(grp,
"measure_nn_nu_dlr", c.measure_nn_nu_dlr);
127 h5_read(grp,
"measure_Sperp_tau", c.measure_Sperp_tau);
128 h5_read(grp,
"measure_state_hist", c.measure_state_hist);
129 h5_read(grp,
"measure_g2w", c.measure_g2w);
130 h5_read(grp,
"measure_g3w", c.measure_g3w);
131 h5::try_read(grp,
"imag_threshold", c.imag_threshold);
132 h5_read(grp,
"det_init_size", c.det_init_size);
133 h5_read(grp,
"det_n_operations_before_check", c.det_n_operations_before_check);
134 h5_read(grp,
"det_precision_warning", c.det_precision_warning);
135 h5_read(grp,
"det_precision_error", c.det_precision_error);
136 h5_read(grp,
"det_singular_threshold", c.det_singular_threshold);
137 h5_read(grp,
"histogram_max_order", c.histogram_max_order);
138 h5_read(grp,
"visualize_config", c.visualize_config);
Parameters used for constructing the solver class.
Parameters passed to the solve() method of the solver class.