41 #ifdef USE_TESTMANAGER_AUTOREGISTER
62 namespace Test_SF_fAfP {
65 const std::string filename_input =
"test_SF_fAfP_Boundary_Meson_2ptFunction.yaml";
66 const std::string filename_output =
"stdout";
68 class Parameters_Test_SF_fAfP :
public Parameters {
70 Parameters_Test_SF_fAfP()
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_string(
"verbose_level",
"NULL");
80 Register_double(
"expected_result", 0.0);
88 #ifdef USE_TESTMANAGER_AUTOREGISTER
91 "SF_fAfP.Boundary_Meson_2ptFunction",
92 boundary_meson_2ptFunction
106 Parameters *params_test =
new Parameters_Test_SF_fAfP;
125 params_manager.
read_params(filename_input, params_all);
127 const string str_gconf_read = params_test->
get_string(
"gauge_config_type_input");
128 const string readfile = params_test->
get_string(
"config_filename_input");
129 const string str_gconf_write = params_test->
get_string(
"gauge_config_type_output");
130 const string writefile = params_test->
get_string(
"config_filename_output");
131 const string str_vlevel = params_test->
get_string(
"verbose_level");
133 const double expected_result = params_test->
get_double(
"expected_result");
136 const string str_gmset_type = params_clover->
get_string(
"gamma_matrix_type");
137 const string str_proj_type = params_proj->
get_string(
"projection_type");
138 const string str_smear_type = params_smear->
get_string(
"smear_type");
139 const string str_solver_type = params_solver->
get_string(
"solver_type");
144 vout.
general(vl,
" gconf_read = %s\n", str_gconf_read.c_str());
145 vout.
general(vl,
" readfile = %s\n", readfile.c_str());
146 vout.
general(vl,
" gconf_write = %s\n", str_gconf_write.c_str());
147 vout.
general(vl,
" writefile = %s\n", writefile.c_str());
148 vout.
general(vl,
" vlevel = %s\n", str_vlevel.c_str());
149 vout.
general(vl,
" gmset_type = %s\n", str_gmset_type.c_str());
150 vout.
general(vl,
" proj_type = %s\n", str_proj_type.c_str());
151 vout.
general(vl,
" smear_type = %s\n", str_smear_type.c_str());
152 vout.
general(vl,
" solver_type = %s\n", str_solver_type.c_str());
163 vout.
crucial(vl,
"Test_SF_fAfP: Input parameters have not been set.\n");
174 Projection *proj = Projection::New(str_proj_type);
176 Smear *smear = Smear::New(str_smear_type, proj);
196 Fopr *fopr = fopr_smear;
200 Solver *solver = Solver::New(str_solver_type, fopr);
211 valarray<Field_F> H(Nc * Nd);
212 valarray<Field_F> Hpr(Nc * Nd);
220 vout.
general(vl,
" color spin Nconv diff diff2\n");
222 for (
int icolor = 0; icolor < Nc; ++icolor) {
223 for (
int ispin = 0; ispin < Nd / 2; ++ispin) {
224 source->
set_t0(b, icolor, ispin);
226 int idx = icolor + Nc * ispin;
227 fprop_lex->
invert_D(xq, b, Nconv, diff);
234 icolor, ispin, Nconv, diff, diff2);
241 for (
int ispin = Nd / 2; ispin < Nd; ++ispin) {
242 source->
set_tT(b, icolor, ispin);
244 int idx = icolor + Nc * ispin;
245 fprop_lex->
invert_D(xq, b, Nconv, diff);
252 icolor, ispin, Nconv, diff, diff2);
263 for (
int t = 0; t < 2; ++t) {
264 int site = index.
site(0, 0, 0, t);
265 for (
int c1 = 0; c1 < Nc; ++c1) {
266 for (
int c0 = 0; c0 < Nc; ++c0) {
267 for (
int s1 = 0; s1 < Nd; ++s1) {
268 for (
int s0 = 0; s0 < Nd; ++s0) {
271 H[c0 + Nc * s0].cmp_r(c1, s1, site),
272 H[c0 + Nc * s0].cmp_i(c1, s1, site));
278 for (
int t = 0; t < 2; ++t) {
279 int site = index.
site(0, 0, 0, t);
280 for (
int c1 = 0; c1 < Nc; ++c1) {
281 for (
int c0 = 0; c0 < Nc; ++c0) {
282 for (
int s1 = 0; s1 < Nd; ++s1) {
283 for (
int s0 = 0; s0 < Nd; ++s0) {
286 Hpr[c0 + Nc * s0].cmp_r(c1, s1, site),
287 Hpr[c0 + Nc * s0].cmp_i(c1, s1, site));
297 vout.
general(vl,
"boundary 2-point correlator with SF BC:\n");
300 double result = corr.
fAfP(H, Hpr);
320 delete params_clover;
323 delete params_dr_smear;
324 delete params_solver;
325 delete params_source;