43 namespace Test_Spectrum_Wilson {
44 const std::string
test_name =
"Spectrum.Wilson.Hadron2ptFunction_eo";
48 const std::string filename_input =
"test_Spectrum_Wilson_Hadron2ptFunction.yaml";
49 const std::string filename_output =
"stdout";
51 class Parameters_Test_Spectrum_Wilson :
public Parameters {
53 Parameters_Test_Spectrum_Wilson()
55 Register_string(
"gauge_config_status",
"NULL");
56 Register_string(
"gauge_config_type_input",
"NULL");
57 Register_string(
"config_filename_input",
"NULL");
59 Register_string(
"verbose_level",
"NULL");
61 Register_double(
"expected_result", 0.0);
69 #ifdef USE_TESTMANAGER_AUTOREGISTER
71 #if defined(USE_GROUP_SU2)
91 Parameters *params_test =
new Parameters_Test_Spectrum_Wilson;
105 params_manager.
read_params(filename_input, params_all);
107 const string str_gconf_status = params_test->
get_string(
"gauge_config_status");
108 const string str_gconf_read = params_test->
get_string(
"gauge_config_type_input");
109 const string readfile = params_test->
get_string(
"config_filename_input");
110 const string str_vlevel = params_test->
get_string(
"verbose_level");
112 const bool do_check = params_test->
is_set(
"expected_result");
113 const double expected_result = do_check ? params_test->
get_double(
"expected_result") : 0.0;
115 const string str_gfix_type = params_gfix->
get_string(
"gauge_fixing_type");
116 const string str_gmset_type = params_wilson->
get_string(
"gamma_matrix_type");
117 const string str_solver_type = params_solver->
get_string(
"solver_type");
118 const string str_source_type = params_source->
get_string(
"source_type");
123 vout.
general(vl,
" gconf_status = %s\n", str_gconf_status.c_str());
124 vout.
general(vl,
" gconf_read = %s\n", str_gconf_read.c_str());
125 vout.
general(vl,
" readfile = %s\n", readfile.c_str());
126 vout.
general(vl,
" vlevel = %s\n", str_vlevel.c_str());
127 vout.
general(vl,
" gfix_type = %s\n", str_gfix_type.c_str());
128 vout.
general(vl,
" gmset_type = %s\n", str_gmset_type.c_str());
129 vout.
general(vl,
" solver_type = %s\n", str_solver_type.c_str());
130 vout.
general(vl,
" source_type = %s\n", str_source_type.c_str());
146 if (str_gconf_status ==
"Continue") {
148 }
else if (str_gconf_status ==
"Cold_start") {
150 }
else if (str_gconf_status ==
"Hot_start") {
154 vout.
crucial(vl,
"%s: unsupported gconf status \"%s\".\n",
test_name.c_str(), str_gconf_status.c_str());
166 GaugeFixing *gfix = GaugeFixing::New(str_gfix_type, rand);
170 vout.
general(vl,
"plaq(original) = %18.14f\n", plaq);
172 gfix->
fix(*Ufix, *U);
175 vout.
general(vl,
"plaq(fixed) = %18.14f\n", plaq2);
176 vout.
general(vl,
"plaq(diff) = %18.10e\n", plaq - plaq2);
191 Solver *solver = Solver::New(str_solver_type, fopr_w_eo);
196 Source *source = Source::New(str_source_type);
205 std::valarray<Field_F> sq(Nc * Nd);
206 for (
int i = 0; i < Nc * Nd; ++i) {
218 vout.
general(vl,
" color spin Nconv diff diff2\n");
220 for (
int ispin = 0; ispin < Nd; ++ispin) {
221 for (
int icolor = 0; icolor < Nc; ++icolor) {
222 int idx = icolor + Nc * ispin;
225 fprop_eo->
invert_D(sq[idx], b, Nconv, diff);
229 fopr_w->
mult(y, sq[idx]);
231 double diff2 = y.
norm();
234 icolor, ispin, Nconv, diff, diff2);
250 delete params_wilson;
251 delete params_solver;
252 delete params_source;
277 vout.
detailed(vl,
"check skipped: expected_result not set.\n\n");
Random number generator base on M-series.
void read_params(const std::string ¶ms_file, Parameters *params)
read parameters from file.
void detailed(const char *format,...)
const std::string test_name
void general(const char *format,...)
const Field mult(const Field &f)
multiplies fermion operator to a given field and returns the resultant field.
Container of Field-type object.
Two-point correlator for Wilson-type fermions.
void set_parameters(const Parameters ¶ms)
double plaquette(const Field_G &)
calculates plaquette value.
static Parameters * New(const std::string &realm)
void set_random(RandomNumbers *rand)
Wilson-type fermion field.
virtual void set_parameters(const Parameters ¶ms)=0
static bool RegisterTest(const std::string &key, const Test_function func)
virtual void invert_D(Field &, const Field &, int &, double &)=0
void set_config(Field *U)
setting pointer to the gauge configuration.
bool is_set(const string &) const
double get_double(const string &key) const
Get quark propagator for Fopr with even-odd site index.
void set_config(Field *U)
setting pointer to the gauge configuration.
void set_parameters(const Parameters ¶ms)
Set of Gamma Matrices: basis class.
int non_NULL(const std::string v)
virtual void set(Field &, int)=0
void axpy(Field &y, const double a, const Field &x)
axpy(y, a, x): y := a * x + y
void crucial(const char *format,...)
double meson_all(const std::valarray< Field_F > &sq1, const std::valarray< Field_F > &sq2)
Even-odd Wilson fermion operator.
void Register_Parameters(const string &, Parameters *const)
void set_mode(std::string mode)
setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelev...
Base class for linear solver class family.
Base class of random number generators.
Parameter manager with YAML parser.
GaugeConfig class for file I/O of gauge configuration.
virtual void fix(Field_G &Ufix, const Field_G &Uorg)=0
int verify(const double expected, const double result)
void read_file(Field *u, const string &filename)
Base class of sources for a linear solver.
string get_string(const string &key) const
void report(const Bridge::VerboseLevel vl=Bridge::GENERAL)
int hadron_2ptFunction_eo(void)
virtual void set_parameters(const Parameters &)=0
static VerboseLevel set_verbose_level(const std::string &str)
virtual void set_parameters(const Parameters ¶ms)=0