26 const string str_vlevel = params.
get_string(
"verbose_level");
30 double c_plaq, c_rect;
36 err += params.
fetch_int(
"max_momentum", max_mom);
85 static const double PI = 4.0 * atan(1.0);
86 static const double PI2 = PI * PI;
94 std::vector<Field_G> Fmunu_1x1(6);
97 for (
int mu = 0; mu < Ndim; ++mu) {
98 for (
int nu = mu + 1; nu < Ndim; ++nu) {
118 Q_1x1 /= (32.0 * PI2);
130 std::vector<Field_G> Fmunu_1x2(6);
133 for (
int mu = 0; mu < Ndim; ++mu) {
134 for (
int nu = mu + 1; nu < Ndim; ++nu) {
147 Q_1x2 /= (32.0 * PI2);
158 std::ofstream log_file;
186 static const double PI = 4.0 * atan(1.0);
187 static const double PI2 = PI * PI;
189 static const double factor1 = 8.0 / (32.0 * PI2);
191 static const double factor2 = 16.0 / (32.0 * PI2);
227 const double Q_rect =
m_c_rect * Q_1x2;
231 std::ofstream log_file;
255 static const double PI = 4.0 * atan(1.0);
256 static const double PI2 = PI * PI;
257 static const double factor1 = 8.0 / (32.0 * PI2);
258 static const double factor2 = 16.0 / (32.0 * PI2);
260 static const double l_c_rect = 1.0 / 8.0;
266 std::vector<double> corr_scr(Lt);
269 std::vector<double> corr_plaq(Lt, 0.0);
272 for (
int t = 0; t < Lt; ++t) {
273 corr_plaq[t] += corr_scr[t];
276 for (
int t = 0; t < Lt; ++t) {
277 corr_plaq[t] -= corr_scr[t];
280 for (
int t = 0; t < Lt; ++t) {
281 corr_plaq[t] += corr_scr[t];
284 for (
int t = 0; t < Lt; ++t) {
285 corr_plaq[t] *= factor1;
290 std::vector<double> corr_1x1(Lt, 0.0);
295 for (
int t = 0; t < Lt; ++t) {
296 corr_1x1[t] += corr_scr[t];
300 for (
int t = 0; t < Lt; ++t) {
301 corr_1x1[t] -= corr_scr[t];
305 for (
int t = 0; t < Lt; ++t) {
306 corr_1x1[t] += corr_scr[t];
309 for (
int t = 0; t < Lt; ++t) {
310 corr_1x1[t] *= factor1;
315 std::vector<double> corr_1x2(Lt, 0.0);
319 for (
int t = 0; t < Lt; ++t) {
320 corr_1x2[t] += corr_scr[t];
323 for (
int t = 0; t < Lt; ++t) {
324 corr_1x2[t] -= corr_scr[t];
327 for (
int t = 0; t < Lt; ++t) {
328 corr_1x2[t] += corr_scr[t];
331 for (
int t = 0; t < Lt; ++t) {
332 corr_1x2[t] *= factor2;
339 std::ofstream log_file;
346 for (
int t = 0; t < Lt; ++t) {
347 vout.
general(
m_vl,
" Q_clover_plaq_t = %.8f %d %.16e\n", tt, t, corr_1x1[t]);
352 scr = l_c_rect * corr_1x2[t];
354 vout.
general(
m_vl,
" Q_plaq_t = %.8f %d %.16e\n", tt, t, corr_plaq[t]);
376 static const double PI = 4.0 * atan(1.0);
377 static const double PI2 = PI * PI;
378 static const double factor1 = 8.0 / (32.0 * PI2);
379 static const double factor2 = 16.0 / (32.0 * PI2);
380 static const double l_c_rect = 1.0 / 8.0;
387 vector<int> source_position(4, 0);
388 vector<int> momentum_sink(3);
390 for (
int ipx = 0; ipx <
m_max_mom + 1; ipx++) {
391 for (
int ipy = 0; ipy < Np; ipy++) {
392 for (
int ipz = 0; ipz < Np; ipz++) {
393 momentum_sink[0] = ipx;
397 std::vector<double> corr_plaq(Lt, 0);
398 std::vector<double> corr_1x1(Lt, 0);
399 std::vector<double> corr_1x2(Lt, 0);
400 std::vector<double> corr_scr(Lt);
404 for (
int t = 0; t < Lt; ++t) {
405 corr_plaq[t] += corr_scr[t];
408 for (
int t = 0; t < Lt; ++t) {
409 corr_plaq[t] -= corr_scr[t];
412 for (
int t = 0; t < Lt; ++t) {
413 corr_plaq[t] += corr_scr[t];
416 for (
int t = 0; t < Lt; ++t) {
417 corr_plaq[t] *= factor1;
425 for (
int t = 0; t < Lt; ++t) {
426 corr_1x1[t] += corr_scr[t];
430 for (
int t = 0; t < Lt; ++t) {
431 corr_1x1[t] -= corr_scr[t];
435 for (
int t = 0; t < Lt; ++t) {
436 corr_1x1[t] += corr_scr[t];
439 for (
int t = 0; t < Lt; ++t) {
440 corr_1x1[t] *= factor1;
447 for (
int t = 0; t < Lt; ++t) {
448 corr_1x2[t] += corr_scr[t];
451 for (
int t = 0; t < Lt; ++t) {
452 corr_1x2[t] -= corr_scr[t];
455 for (
int t = 0; t < Lt; ++t) {
456 corr_1x2[t] += corr_scr[t];
459 for (
int t = 0; t < Lt; ++t) {
460 corr_1x2[t] *= factor2;
467 std::ofstream log_file;
474 for (
int t = 0; t < Lt; ++t) {
475 vout.
general(
m_vl,
" Q_clover_plaq_t_FT = %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], tt, t, corr_1x1[t]);
477 vout.
general(
m_vl,
" Q_clover_imp_t_FT = %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], tt, t, scr);
478 scr = l_c_rect * corr_1x2[t];
479 vout.
general(
m_vl,
" Q_clover_rect_t_FT = %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], tt, t, scr);
480 vout.
general(
m_vl,
" Q_plaq_t_FT = %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], tt, t, corr_plaq[t]);
507 static const double PI = 4.0 * atan(1.0);
508 static const double PI2 = PI * PI;
509 static const double factor1 = 8.0 / (32.0 * PI2);
510 static const double factor2 = 16.0 / (32.0 * PI2);
512 static const double l_c_rect = 1.0 / 8.0;
518 std::vector<double> corr_scr(Lx);
521 std::vector<double> corr_plaq(Lx, 0.0);
524 for (
int x = 0; x < Lx; ++x) {
525 corr_plaq[x] += corr_scr[x];
528 for (
int x = 0; x < Lx; ++x) {
529 corr_plaq[x] -= corr_scr[x];
532 for (
int x = 0; x < Lx; ++x) {
533 corr_plaq[x] += corr_scr[x];
536 for (
int x = 0; x < Lx; ++x) {
537 corr_plaq[x] *= factor1;
542 std::vector<double> corr_1x1(Lx, 0.0);
547 for (
int x = 0; x < Lx; ++x) {
548 corr_1x1[x] += corr_scr[x];
552 for (
int x = 0; x < Lx; ++x) {
553 corr_1x1[x] -= corr_scr[x];
557 for (
int x = 0; x < Lx; ++x) {
558 corr_1x1[x] += corr_scr[x];
561 for (
int x = 0; x < Lx; ++x) {
562 corr_1x1[x] *= factor1;
567 std::vector<double> corr_1x2(Lx, 0.0);
571 for (
int x = 0; x < Lx; ++x) {
572 corr_1x2[x] += corr_scr[x];
575 for (
int x = 0; x < Lx; ++x) {
576 corr_1x2[x] -= corr_scr[x];
579 for (
int x = 0; x < Lx; ++x) {
580 corr_1x2[x] += corr_scr[x];
583 for (
int x = 0; x < Lx; ++x) {
584 corr_1x2[x] *= factor2;
591 std::ofstream log_file;
598 for (
int x = 0; x < Lx; ++x) {
599 vout.
general(
m_vl,
" Q_clover_plaq_x = %.8f %d %.16e\n", tt, x, corr_1x1[x]);
604 scr = l_c_rect * corr_1x2[x];
606 vout.
general(
m_vl,
" Q_plaq_x = %.8f %d %.16e\n", tt, x, corr_plaq[x]);
629 static const double PI = 4.0 * atan(1.0);
630 static const double PI2 = PI * PI;
631 static const double factor1 = 8.0 / (32.0 * PI2);
632 static const double factor2 = 16.0 / (32.0 * PI2);
633 static const double l_c_rect = 1.0 / 8.0;
640 vector<int> source_position(4, 0);
641 vector<int> momentum_sink(3);
643 for (
int ipx = 0; ipx <
m_max_mom + 1; ipx++) {
644 for (
int ipy = 0; ipy < Np; ipy++) {
645 for (
int ipz = 0; ipz < Np; ipz++) {
646 momentum_sink[0] = ipx;
650 std::vector<double> corr_plaq(Lx, 0);
651 std::vector<double> corr_1x1(Lx, 0);
652 std::vector<double> corr_1x2(Lx, 0);
653 std::vector<double> corr_scr(Lx);
657 for (
int t = 0; t < Lx; ++t) {
658 corr_plaq[t] += corr_scr[t];
661 for (
int t = 0; t < Lx; ++t) {
662 corr_plaq[t] -= corr_scr[t];
665 for (
int t = 0; t < Lx; ++t) {
666 corr_plaq[t] += corr_scr[t];
669 for (
int t = 0; t < Lx; ++t) {
670 corr_plaq[t] *= factor1;
678 for (
int t = 0; t < Lx; ++t) {
679 corr_1x1[t] += corr_scr[t];
683 for (
int t = 0; t < Lx; ++t) {
684 corr_1x1[t] -= corr_scr[t];
688 for (
int t = 0; t < Lx; ++t) {
689 corr_1x1[t] += corr_scr[t];
692 for (
int t = 0; t < Lx; ++t) {
693 corr_1x1[t] *= factor1;
700 for (
int t = 0; t < Lx; ++t) {
701 corr_1x2[t] += corr_scr[t];
704 for (
int t = 0; t < Lx; ++t) {
705 corr_1x2[t] -= corr_scr[t];
708 for (
int t = 0; t < Lx; ++t) {
709 corr_1x2[t] += corr_scr[t];
712 for (
int t = 0; t < Lx; ++t) {
713 corr_1x2[t] *= factor2;
720 std::ofstream log_file;
727 for (
int t = 0; t < Lx; ++t) {
728 vout.
general(
m_vl,
" Q_clover_plaq_x_FT = %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], tt, t, corr_1x1[t]);
730 vout.
general(
m_vl,
" Q_clover_imp_x_FT = %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], tt, t, scr);
731 scr = l_c_rect * corr_1x2[t];
732 vout.
general(
m_vl,
" Q_clover_rect_x_FT = %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], tt, t, scr);
733 vout.
general(
m_vl,
" Q_plaq_x_FT = %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], tt, t, corr_plaq[t]);
760 static const double PI = 4.0 * atan(1.0);
761 static const double PI2 = PI * PI;
762 static const double factor1 = 8.0 / (32.0 * PI2);
763 static const double factor2 = 16.0 / (32.0 * PI2);
765 static const double l_c_rect = 1.0 / 8.0;
771 std::vector<double> corr_scr(Ly);
774 std::vector<double> corr_plaq(Ly, 0.0);
777 for (
int y = 0; y < Ly; ++y) {
778 corr_plaq[y] += corr_scr[y];
781 for (
int y = 0; y < Ly; ++y) {
782 corr_plaq[y] -= corr_scr[y];
785 for (
int y = 0; y < Ly; ++y) {
786 corr_plaq[y] += corr_scr[y];
789 for (
int y = 0; y < Ly; ++y) {
790 corr_plaq[y] *= factor1;
795 std::vector<double> corr_1x1(Ly, 0.0);
800 for (
int y = 0; y < Ly; ++y) {
801 corr_1x1[y] += corr_scr[y];
805 for (
int y = 0; y < Ly; ++y) {
806 corr_1x1[y] -= corr_scr[y];
810 for (
int y = 0; y < Ly; ++y) {
811 corr_1x1[y] += corr_scr[y];
814 for (
int y = 0; y < Ly; ++y) {
815 corr_1x1[y] *= factor1;
820 std::vector<double> corr_1x2(Ly, 0.0);
824 for (
int y = 0; y < Ly; ++y) {
825 corr_1x2[y] += corr_scr[y];
828 for (
int y = 0; y < Ly; ++y) {
829 corr_1x2[y] -= corr_scr[y];
832 for (
int y = 0; y < Ly; ++y) {
833 corr_1x2[y] += corr_scr[y];
836 for (
int y = 0; y < Ly; ++y) {
837 corr_1x2[y] *= factor2;
844 std::ofstream log_file;
851 for (
int y = 0; y < Ly; ++y) {
852 vout.
general(
m_vl,
" Q_clover_plaq_y = %.8f %d %.16e\n", tt, y, corr_1x1[y]);
857 scr = l_c_rect * corr_1x2[y];
859 vout.
general(
m_vl,
" Q_plaq_y = %.8f %d %.16e\n", tt, y, corr_plaq[y]);
882 static const double PI = 4.0 * atan(1.0);
883 static const double PI2 = PI * PI;
884 static const double factor1 = 8.0 / (32.0 * PI2);
885 static const double factor2 = 16.0 / (32.0 * PI2);
886 static const double l_c_rect = 1.0 / 8.0;
893 vector<int> source_position(4, 0);
894 vector<int> momentum_sink(3);
896 for (
int ipx = 0; ipx <
m_max_mom + 1; ipx++) {
897 for (
int ipy = 0; ipy < Np; ipy++) {
898 for (
int ipz = 0; ipz < Np; ipz++) {
899 momentum_sink[0] = ipx;
903 std::vector<double> corr_plaq(Ly, 0);
904 std::vector<double> corr_1x1(Ly, 0);
905 std::vector<double> corr_1x2(Ly, 0);
906 std::vector<double> corr_scr(Ly);
910 for (
int t = 0; t < Ly; ++t) {
911 corr_plaq[t] += corr_scr[t];
914 for (
int t = 0; t < Ly; ++t) {
915 corr_plaq[t] -= corr_scr[t];
918 for (
int t = 0; t < Ly; ++t) {
919 corr_plaq[t] += corr_scr[t];
922 for (
int t = 0; t < Ly; ++t) {
923 corr_plaq[t] *= factor1;
931 for (
int t = 0; t < Ly; ++t) {
932 corr_1x1[t] += corr_scr[t];
936 for (
int t = 0; t < Ly; ++t) {
937 corr_1x1[t] -= corr_scr[t];
941 for (
int t = 0; t < Ly; ++t) {
942 corr_1x1[t] += corr_scr[t];
945 for (
int t = 0; t < Ly; ++t) {
946 corr_1x1[t] *= factor1;
953 for (
int t = 0; t < Ly; ++t) {
954 corr_1x2[t] += corr_scr[t];
957 for (
int t = 0; t < Ly; ++t) {
958 corr_1x2[t] -= corr_scr[t];
961 for (
int t = 0; t < Ly; ++t) {
962 corr_1x2[t] += corr_scr[t];
965 for (
int t = 0; t < Ly; ++t) {
966 corr_1x2[t] *= factor2;
973 std::ofstream log_file;
980 for (
int t = 0; t < Ly; ++t) {
981 vout.
general(
m_vl,
" Q_clover_plaq_y_FT = %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], tt, t, corr_1x1[t]);
983 vout.
general(
m_vl,
" Q_clover_imp_y_FT = %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], tt, t, scr);
984 scr = l_c_rect * corr_1x2[t];
985 vout.
general(
m_vl,
" Q_clover_rect_y_FT = %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], tt, t, scr);
986 vout.
general(
m_vl,
" Q_plaq_y_FT = %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], tt, t, corr_plaq[t]);
1013 static const double PI = 4.0 * atan(1.0);
1014 static const double PI2 = PI * PI;
1015 static const double factor1 = 8.0 / (32.0 * PI2);
1016 static const double factor2 = 16.0 / (32.0 * PI2);
1018 static const double l_c_rect = 1.0 / 8.0;
1024 std::vector<double> corr_scr(Lz);
1027 std::vector<double> corr_plaq(Lz, 0.0);
1030 for (
int z = 0; z < Lz; ++z) {
1031 corr_plaq[z] += corr_scr[z];
1034 for (
int z = 0; z < Lz; ++z) {
1035 corr_plaq[z] -= corr_scr[z];
1038 for (
int z = 0; z < Lz; ++z) {
1039 corr_plaq[z] += corr_scr[z];
1042 for (
int z = 0; z < Lz; ++z) {
1043 corr_plaq[z] *= factor1;
1048 std::vector<double> corr_1x1(Lz, 0.0);
1053 for (
int z = 0; z < Lz; ++z) {
1054 corr_1x1[z] += corr_scr[z];
1058 for (
int z = 0; z < Lz; ++z) {
1059 corr_1x1[z] -= corr_scr[z];
1063 for (
int z = 0; z < Lz; ++z) {
1064 corr_1x1[z] += corr_scr[z];
1067 for (
int z = 0; z < Lz; ++z) {
1068 corr_1x1[z] *= factor1;
1073 std::vector<double> corr_1x2(Lz, 0.0);
1077 for (
int z = 0; z < Lz; ++z) {
1078 corr_1x2[z] += corr_scr[z];
1081 for (
int z = 0; z < Lz; ++z) {
1082 corr_1x2[z] -= corr_scr[z];
1085 for (
int z = 0; z < Lz; ++z) {
1086 corr_1x2[z] += corr_scr[z];
1089 for (
int z = 0; z < Lz; ++z) {
1090 corr_1x2[z] *= factor2;
1097 std::ofstream log_file;
1104 for (
int z = 0; z < Lz; ++z) {
1105 vout.
general(
m_vl,
" Q_clover_plaq_z = %.8f %d %.16e\n", tt, z, corr_1x1[z]);
1110 scr = l_c_rect * corr_1x2[z];
1112 vout.
general(
m_vl,
" Q_plaq_z = %.8f %d %.16e\n", tt, z, corr_plaq[z]);
1135 static const double PI = 4.0 * atan(1.0);
1136 static const double PI2 = PI * PI;
1137 static const double factor1 = 8.0 / (32.0 * PI2);
1138 static const double factor2 = 16.0 / (32.0 * PI2);
1139 static const double l_c_rect = 1.0 / 8.0;
1146 vector<int> source_position(4, 0);
1147 vector<int> momentum_sink(3);
1149 for (
int ipx = 0; ipx <
m_max_mom + 1; ipx++) {
1150 for (
int ipy = 0; ipy < Np; ipy++) {
1151 for (
int ipz = 0; ipz < Np; ipz++) {
1152 momentum_sink[0] = ipx;
1156 std::vector<double> corr_plaq(Lz, 0);
1157 std::vector<double> corr_1x1(Lz, 0);
1158 std::vector<double> corr_1x2(Lz, 0);
1159 std::vector<double> corr_scr(Lz);
1163 for (
int t = 0; t < Lz; ++t) {
1164 corr_plaq[t] += corr_scr[t];
1167 for (
int t = 0; t < Lz; ++t) {
1168 corr_plaq[t] -= corr_scr[t];
1171 for (
int t = 0; t < Lz; ++t) {
1172 corr_plaq[t] += corr_scr[t];
1175 for (
int t = 0; t < Lz; ++t) {
1176 corr_plaq[t] *= factor1;
1184 for (
int t = 0; t < Lz; ++t) {
1185 corr_1x1[t] += corr_scr[t];
1189 for (
int t = 0; t < Lz; ++t) {
1190 corr_1x1[t] -= corr_scr[t];
1194 for (
int t = 0; t < Lz; ++t) {
1195 corr_1x1[t] += corr_scr[t];
1198 for (
int t = 0; t < Lz; ++t) {
1199 corr_1x1[t] *= factor1;
1206 for (
int t = 0; t < Lz; ++t) {
1207 corr_1x2[t] += corr_scr[t];
1210 for (
int t = 0; t < Lz; ++t) {
1211 corr_1x2[t] -= corr_scr[t];
1214 for (
int t = 0; t < Lz; ++t) {
1215 corr_1x2[t] += corr_scr[t];
1218 for (
int t = 0; t < Lz; ++t) {
1219 corr_1x2[t] *= factor2;
1226 std::ofstream log_file;
1233 for (
int t = 0; t < Lz; ++t) {
1234 vout.
general(
m_vl,
" Q_clover_plaq_z_FT = %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], tt, t, corr_1x1[t]);
1236 vout.
general(
m_vl,
" Q_clover_imp_z_FT = %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], tt, t, scr);
1237 scr = l_c_rect * corr_1x2[t];
1238 vout.
general(
m_vl,
" Q_clover_rect_z_FT = %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], tt, t, scr);
1239 vout.
general(
m_vl,
" Q_plaq_z_FT = %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], tt, t, corr_plaq[t]);
1290 for (
int mu = 0; mu < Ndim; ++mu) {
1291 for (
int nu = mu + 1; nu < Ndim; ++nu) {