59 const std::string
test_name =
"HMC.Clover_Isochemical.Nf2";
63 const std::string filename_input =
"test_HMC_Clover_Isochemical_Nf2.yaml";
64 const std::string filename_output =
"stdout";
66 class Parameters_Test_HMC_Clover_Isochemical :
public Parameters {
68 Parameters_Test_HMC_Clover_Isochemical()
70 Register_string(
"gauge_config_status",
"NULL");
72 Register_string(
"gauge_config_type_input",
"NULL");
73 Register_string(
"config_filename_input",
"NULL");
75 Register_string(
"gauge_config_type_output",
"NULL");
76 Register_string(
"config_filename_output",
"NULL");
78 Register_int(
"trajectory_number", 0);
79 Register_int(
"trajectory_number_step", 0);
80 Register_int(
"save_config_interval", 0);
82 Register_int(
"seed_for_noise", 0);
83 Register_int(
"number_of_noises", 0);
85 Register_string(
"verbose_level",
"NULL");
87 Register_double(
"expected_result", 0.0);
95 #ifdef USE_TESTMANAGER_AUTOREGISTER
97 #if defined(USE_GROUP_SU2)
141 const string str_gconf_status = params_test->
get_string(
"gauge_config_status");
142 const string str_gconf_read = params_test->
get_string(
"gauge_config_type_input");
143 const string readfile = params_test->
get_string(
"config_filename_input");
144 const string str_gconf_write = params_test->
get_string(
"gauge_config_type_output");
145 const string writefile = params_test->
get_string(
"config_filename_output");
146 int i_conf = params_test->
get_int(
"trajectory_number");
147 const int Ntraj = params_test->
get_int(
"trajectory_number_step");
148 const int i_save_conf = params_test->
get_int(
"save_config_interval");
149 int i_seed_noise = params_test->
get_int(
"seed_for_noise");
150 const string str_vlevel = params_test->
get_string(
"verbose_level");
152 const bool do_check = params_test->
is_set(
"expected_result");
153 const double expected_result = do_check ? params_test->
get_double(
"expected_result") : 0.0;
155 const string str_action_G_type = params_action_G->
get_string(
"action_type");
156 const string str_fopr_type = params_fopr->
get_string(
"fermion_type");
157 const string str_gmset_type = params_fopr->
get_string(
"gamma_matrix_type");
158 const string str_proj_type = params_proj->
get_string(
"projection_type");
159 const string str_smear_type = params_smear->
get_string(
"smear_type");
160 const string str_solver_MD_type = params_solver_MD->
get_string(
"solver_type");
161 const string str_solver_H_type = params_solver_H->
get_string(
"solver_type");
162 const int Nlevels = params_integrator->
get_int(
"number_of_levels");
163 const std::vector<int> level_action = params_integrator->
get_int_vector(
"level_of_actions");
168 vout.
general(vl,
" gconf_status = %s\n", str_gconf_status.c_str());
169 vout.
general(vl,
" gconf_read = %s\n", str_gconf_read.c_str());
170 vout.
general(vl,
" readfile = %s\n", readfile.c_str());
171 vout.
general(vl,
" gconf_write = %s\n", str_gconf_write.c_str());
172 vout.
general(vl,
" writefile = %s\n", writefile.c_str());
175 vout.
general(vl,
" i_save_conf = %d\n", i_save_conf);
176 vout.
general(vl,
" i_seed_noise = %d\n", i_seed_noise);
177 vout.
general(vl,
" vlevel = %s\n", str_vlevel.c_str());
178 vout.
general(vl,
" gmset_type = %s\n", str_gmset_type.c_str());
179 vout.
general(vl,
" proj_type = %s\n", str_proj_type.c_str());
180 vout.
general(vl,
" smear_type = %s\n", str_smear_type.c_str());
181 vout.
general(vl,
" solver_MD_type = %s\n", str_solver_MD_type.c_str());
182 vout.
general(vl,
" solver_H_type = %s\n", str_solver_H_type.c_str());
193 vout.
crucial(vl,
"%s: Input parameters have not been set.\n", test_name.c_str());
203 if (str_gconf_status ==
"Continue") {
205 }
else if (str_gconf_status ==
"Cold_start") {
207 }
else if (str_gconf_status ==
"Hot_start") {
208 int i_seed_noise = 1234567;
212 vout.
crucial(vl,
"%s: unsupported gconf status \"%s\".\n", test_name.c_str(), str_gconf_status.c_str());
261 actions.
append(level_action[0], action_F);
262 actions.
append(level_action[1], action_G);
264 std::vector<Director *> directors(1);
274 HMC_General hmc(actions, directors, integrator, rand);
295 vout.
general(vl,
"Polyakov loop = %e %e\n", real(ploop0), imag(ploop0));
298 for (
int traj = 0; traj < Ntraj; ++traj) {
304 if ((i_conf + traj + 1) % i_save_conf == 0) {
310 vout.
general(vl,
"Polyakov loop = %e %e\n", real(ploop1), imag(ploop1));
312 double result_quark_suscept1 = quark_suscept->
measure();
323 vout.
detailed(vl,
"check skipped: expected_result not set.\n\n");
Random number generator base on M-series.
void detailed(const char *format,...)
void set_parameters(const Parameters ¶ms)
void general(const char *format,...)
virtual void set_parameters(const Parameters &)=0
int get_int(const string &key) const
static Parameters * New(const std::string &realm)
void read_file(Field *U, const string &filename)
void set_random(RandomNumbers *rand)
bool append(const int level, Action *action)
virtual void set_parameters(const Parameters ¶m)=0
Base class of Integrator class family.
virtual void set_parameters(const Parameters ¶ms)=0
std::vector< int > get_int_vector(const string &key) const
static bool RegisterTest(const std::string &key, const Test_function func)
void set_parameters(const Parameters ¶ms)
Manager of commonly used data object in HMC.
bool is_set(const string &) const
double get_double(const string &key) const
std::string generate_filename(const char *fmt,...)
Quark number susceptibility for the Wilson-type fermion.
void write_file(Field *U, const string &filename)
virtual void set_parameters(const Parameters &)=0
double measure()
measure tr1 = Tr[D1*Sq], tr2 = Tr[D2*Sq], tr3 = Tr[D1*Sq*D1*Sq].
int non_NULL(const std::string v)
Get quark propagator for Fopr with lexical site index.
void crucial(const char *format,...)
virtual void set_parameters(const Parameters ¶ms)=0
void Register_Parameters(const string &, Parameters *const)
lists of actions at respective integrator levels.
Manager of smeared configurations.
int verify(const double result, const double expected, double eps)
Test of HMC update for clover fermions with isochemical potential.
void set_parameters(const Parameters ¶ms)
Force calculation for smeared fermion operators.
int non_negative(const int v)
static void read(const std::string ¶ms_file, Parameters *params)
virtual void set_parameters(const Parameters &)=0
dcomplex measure_ploop(Field_G &U)
Polyakov loop measurement.
GaugeConfig class for file I/O of gauge configuration.
Z2 Noise vector for trance calculation.
string get_string(const string &key) const
void report(const Bridge::VerboseLevel vl=Bridge::GENERAL)
virtual void set_parameters(const Parameters &)=0
Standard fermion action for HMC.
static VerboseLevel set_verbose_level(const std::string &str)
const std::string test_name