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 if (use_outputfile) {
169 if (use_outputfile) {
182 static const double PI = 4.0 * atan(1.0);
183 static const double PI2 = PI * PI;
185 static const double factor1 = 8.0 / (32.0 * PI2);
187 static const double factor2 = 16.0 / (32.0 * PI2);
223 const double Q_rect =
m_c_rect * Q_1x2;
227 if (use_outputfile) {
237 if (use_outputfile) {
248 static const double PI = 4.0 * atan(1.0);
249 static const double PI2 = PI * PI;
250 static const double factor1 = 8.0 / (32.0 * PI2);
251 static const double factor2 = 16.0 / (32.0 * PI2);
253 static const double l_c_rect = 1.0 / 8.0;
259 std::vector<double> corr_scr(Lt);
262 std::vector<double> corr_plaq(Lt, 0.0);
265 for (
int t = 0; t < Lt; ++t) {
266 corr_plaq[t] += corr_scr[t];
269 for (
int t = 0; t < Lt; ++t) {
270 corr_plaq[t] -= corr_scr[t];
273 for (
int t = 0; t < Lt; ++t) {
274 corr_plaq[t] += corr_scr[t];
277 for (
int t = 0; t < Lt; ++t) {
278 corr_plaq[t] *= factor1;
283 std::vector<double> corr_1x1(Lt, 0.0);
288 for (
int t = 0; t < Lt; ++t) {
289 corr_1x1[t] += corr_scr[t];
293 for (
int t = 0; t < Lt; ++t) {
294 corr_1x1[t] -= corr_scr[t];
298 for (
int t = 0; t < Lt; ++t) {
299 corr_1x1[t] += corr_scr[t];
302 for (
int t = 0; t < Lt; ++t) {
303 corr_1x1[t] *= factor1;
308 std::vector<double> corr_1x2(Lt, 0.0);
312 for (
int t = 0; t < Lt; ++t) {
313 corr_1x2[t] += corr_scr[t];
316 for (
int t = 0; t < Lt; ++t) {
317 corr_1x2[t] -= corr_scr[t];
320 for (
int t = 0; t < Lt; ++t) {
321 corr_1x2[t] += corr_scr[t];
324 for (
int t = 0; t < Lt; ++t) {
325 corr_1x2[t] *= factor2;
332 if (use_outputfile) {
337 for (
int t = 0; t < Lt; ++t) {
338 vout.
general(
m_vl,
" Q_clover_plaq_t = %.8f %d %.16e\n", tt, t, corr_1x1[t]);
343 scr = l_c_rect * corr_1x2[t];
345 vout.
general(
m_vl,
" Q_plaq_t = %.8f %d %.16e\n", tt, t, corr_plaq[t]);
356 if (use_outputfile) {
366 static const double PI = 4.0 * atan(1.0);
367 static const double PI2 = PI * PI;
368 static const double factor1 = 8.0 / (32.0 * PI2);
369 static const double factor2 = 16.0 / (32.0 * PI2);
370 static const double l_c_rect = 1.0 / 8.0;
377 vector<int> source_position(4, 0);
378 vector<int> momentum_sink(3);
380 for (
int ipx = 0; ipx <
m_max_mom + 1; ipx++) {
381 for (
int ipy = 0; ipy < Np; ipy++) {
382 for (
int ipz = 0; ipz < Np; ipz++) {
383 momentum_sink[0] = ipx;
387 std::vector<double> corr_plaq(Lt, 0);
388 std::vector<double> corr_1x1(Lt, 0);
389 std::vector<double> corr_1x2(Lt, 0);
390 std::vector<double> corr_scr(Lt);
394 for (
int t = 0; t < Lt; ++t) {
395 corr_plaq[t] += corr_scr[t];
398 for (
int t = 0; t < Lt; ++t) {
399 corr_plaq[t] -= corr_scr[t];
402 for (
int t = 0; t < Lt; ++t) {
403 corr_plaq[t] += corr_scr[t];
406 for (
int t = 0; t < Lt; ++t) {
407 corr_plaq[t] *= factor1;
415 for (
int t = 0; t < Lt; ++t) {
416 corr_1x1[t] += corr_scr[t];
420 for (
int t = 0; t < Lt; ++t) {
421 corr_1x1[t] -= corr_scr[t];
425 for (
int t = 0; t < Lt; ++t) {
426 corr_1x1[t] += corr_scr[t];
429 for (
int t = 0; t < Lt; ++t) {
430 corr_1x1[t] *= factor1;
437 for (
int t = 0; t < Lt; ++t) {
438 corr_1x2[t] += corr_scr[t];
441 for (
int t = 0; t < Lt; ++t) {
442 corr_1x2[t] -= corr_scr[t];
445 for (
int t = 0; t < Lt; ++t) {
446 corr_1x2[t] += corr_scr[t];
449 for (
int t = 0; t < Lt; ++t) {
450 corr_1x2[t] *= factor2;
457 if (use_outputfile) {
462 for (
int t = 0; t < Lt; ++t) {
463 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]);
465 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);
466 scr = l_c_rect * corr_1x2[t];
467 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);
468 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]);
480 if (use_outputfile) {
494 static const double PI = 4.0 * atan(1.0);
495 static const double PI2 = PI * PI;
496 static const double factor1 = 8.0 / (32.0 * PI2);
497 static const double factor2 = 16.0 / (32.0 * PI2);
499 static const double l_c_rect = 1.0 / 8.0;
505 std::vector<double> corr_scr(Lx);
508 std::vector<double> corr_plaq(Lx, 0.0);
511 for (
int x = 0; x < Lx; ++x) {
512 corr_plaq[x] += corr_scr[x];
515 for (
int x = 0; x < Lx; ++x) {
516 corr_plaq[x] -= corr_scr[x];
519 for (
int x = 0; x < Lx; ++x) {
520 corr_plaq[x] += corr_scr[x];
523 for (
int x = 0; x < Lx; ++x) {
524 corr_plaq[x] *= factor1;
529 std::vector<double> corr_1x1(Lx, 0.0);
534 for (
int x = 0; x < Lx; ++x) {
535 corr_1x1[x] += corr_scr[x];
539 for (
int x = 0; x < Lx; ++x) {
540 corr_1x1[x] -= corr_scr[x];
544 for (
int x = 0; x < Lx; ++x) {
545 corr_1x1[x] += corr_scr[x];
548 for (
int x = 0; x < Lx; ++x) {
549 corr_1x1[x] *= factor1;
554 std::vector<double> corr_1x2(Lx, 0.0);
558 for (
int x = 0; x < Lx; ++x) {
559 corr_1x2[x] += corr_scr[x];
562 for (
int x = 0; x < Lx; ++x) {
563 corr_1x2[x] -= corr_scr[x];
566 for (
int x = 0; x < Lx; ++x) {
567 corr_1x2[x] += corr_scr[x];
570 for (
int x = 0; x < Lx; ++x) {
571 corr_1x2[x] *= factor2;
578 if (use_outputfile) {
583 for (
int x = 0; x < Lx; ++x) {
584 vout.
general(
m_vl,
" Q_clover_plaq_x = %.8f %d %.16e\n", tt, x, corr_1x1[x]);
589 scr = l_c_rect * corr_1x2[x];
591 vout.
general(
m_vl,
" Q_plaq_x = %.8f %d %.16e\n", tt, x, corr_plaq[x]);
603 if (use_outputfile) {
613 static const double PI = 4.0 * atan(1.0);
614 static const double PI2 = PI * PI;
615 static const double factor1 = 8.0 / (32.0 * PI2);
616 static const double factor2 = 16.0 / (32.0 * PI2);
617 static const double l_c_rect = 1.0 / 8.0;
624 vector<int> source_position(4, 0);
625 vector<int> momentum_sink(3);
627 for (
int ipx = 0; ipx <
m_max_mom + 1; ipx++) {
628 for (
int ipy = 0; ipy < Np; ipy++) {
629 for (
int ipz = 0; ipz < Np; ipz++) {
630 momentum_sink[0] = ipx;
634 std::vector<double> corr_plaq(Lx, 0);
635 std::vector<double> corr_1x1(Lx, 0);
636 std::vector<double> corr_1x2(Lx, 0);
637 std::vector<double> corr_scr(Lx);
641 for (
int t = 0; t < Lx; ++t) {
642 corr_plaq[t] += corr_scr[t];
645 for (
int t = 0; t < Lx; ++t) {
646 corr_plaq[t] -= corr_scr[t];
649 for (
int t = 0; t < Lx; ++t) {
650 corr_plaq[t] += corr_scr[t];
653 for (
int t = 0; t < Lx; ++t) {
654 corr_plaq[t] *= factor1;
662 for (
int t = 0; t < Lx; ++t) {
663 corr_1x1[t] += corr_scr[t];
667 for (
int t = 0; t < Lx; ++t) {
668 corr_1x1[t] -= corr_scr[t];
672 for (
int t = 0; t < Lx; ++t) {
673 corr_1x1[t] += corr_scr[t];
676 for (
int t = 0; t < Lx; ++t) {
677 corr_1x1[t] *= factor1;
684 for (
int t = 0; t < Lx; ++t) {
685 corr_1x2[t] += corr_scr[t];
688 for (
int t = 0; t < Lx; ++t) {
689 corr_1x2[t] -= corr_scr[t];
692 for (
int t = 0; t < Lx; ++t) {
693 corr_1x2[t] += corr_scr[t];
696 for (
int t = 0; t < Lx; ++t) {
697 corr_1x2[t] *= factor2;
704 if (use_outputfile) {
709 for (
int t = 0; t < Lx; ++t) {
710 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]);
712 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);
713 scr = l_c_rect * corr_1x2[t];
714 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);
715 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]);
727 if (use_outputfile) {
741 static const double PI = 4.0 * atan(1.0);
742 static const double PI2 = PI * PI;
743 static const double factor1 = 8.0 / (32.0 * PI2);
744 static const double factor2 = 16.0 / (32.0 * PI2);
746 static const double l_c_rect = 1.0 / 8.0;
752 std::vector<double> corr_scr(Ly);
755 std::vector<double> corr_plaq(Ly, 0.0);
758 for (
int y = 0; y < Ly; ++y) {
759 corr_plaq[y] += corr_scr[y];
762 for (
int y = 0; y < Ly; ++y) {
763 corr_plaq[y] -= corr_scr[y];
766 for (
int y = 0; y < Ly; ++y) {
767 corr_plaq[y] += corr_scr[y];
770 for (
int y = 0; y < Ly; ++y) {
771 corr_plaq[y] *= factor1;
776 std::vector<double> corr_1x1(Ly, 0.0);
781 for (
int y = 0; y < Ly; ++y) {
782 corr_1x1[y] += corr_scr[y];
786 for (
int y = 0; y < Ly; ++y) {
787 corr_1x1[y] -= corr_scr[y];
791 for (
int y = 0; y < Ly; ++y) {
792 corr_1x1[y] += corr_scr[y];
795 for (
int y = 0; y < Ly; ++y) {
796 corr_1x1[y] *= factor1;
801 std::vector<double> corr_1x2(Ly, 0.0);
805 for (
int y = 0; y < Ly; ++y) {
806 corr_1x2[y] += corr_scr[y];
809 for (
int y = 0; y < Ly; ++y) {
810 corr_1x2[y] -= corr_scr[y];
813 for (
int y = 0; y < Ly; ++y) {
814 corr_1x2[y] += corr_scr[y];
817 for (
int y = 0; y < Ly; ++y) {
818 corr_1x2[y] *= factor2;
825 if (use_outputfile) {
830 for (
int y = 0; y < Ly; ++y) {
831 vout.
general(
m_vl,
" Q_clover_plaq_y = %.8f %d %.16e\n", tt, y, corr_1x1[y]);
836 scr = l_c_rect * corr_1x2[y];
838 vout.
general(
m_vl,
" Q_plaq_y = %.8f %d %.16e\n", tt, y, corr_plaq[y]);
850 if (use_outputfile) {
860 static const double PI = 4.0 * atan(1.0);
861 static const double PI2 = PI * PI;
862 static const double factor1 = 8.0 / (32.0 * PI2);
863 static const double factor2 = 16.0 / (32.0 * PI2);
864 static const double l_c_rect = 1.0 / 8.0;
871 vector<int> source_position(4, 0);
872 vector<int> momentum_sink(3);
874 for (
int ipx = 0; ipx <
m_max_mom + 1; ipx++) {
875 for (
int ipy = 0; ipy < Np; ipy++) {
876 for (
int ipz = 0; ipz < Np; ipz++) {
877 momentum_sink[0] = ipx;
881 std::vector<double> corr_plaq(Ly, 0);
882 std::vector<double> corr_1x1(Ly, 0);
883 std::vector<double> corr_1x2(Ly, 0);
884 std::vector<double> corr_scr(Ly);
888 for (
int t = 0; t < Ly; ++t) {
889 corr_plaq[t] += corr_scr[t];
892 for (
int t = 0; t < Ly; ++t) {
893 corr_plaq[t] -= corr_scr[t];
896 for (
int t = 0; t < Ly; ++t) {
897 corr_plaq[t] += corr_scr[t];
900 for (
int t = 0; t < Ly; ++t) {
901 corr_plaq[t] *= factor1;
909 for (
int t = 0; t < Ly; ++t) {
910 corr_1x1[t] += corr_scr[t];
914 for (
int t = 0; t < Ly; ++t) {
915 corr_1x1[t] -= corr_scr[t];
919 for (
int t = 0; t < Ly; ++t) {
920 corr_1x1[t] += corr_scr[t];
923 for (
int t = 0; t < Ly; ++t) {
924 corr_1x1[t] *= factor1;
931 for (
int t = 0; t < Ly; ++t) {
932 corr_1x2[t] += corr_scr[t];
935 for (
int t = 0; t < Ly; ++t) {
936 corr_1x2[t] -= corr_scr[t];
939 for (
int t = 0; t < Ly; ++t) {
940 corr_1x2[t] += corr_scr[t];
943 for (
int t = 0; t < Ly; ++t) {
944 corr_1x2[t] *= factor2;
951 if (use_outputfile) {
956 for (
int t = 0; t < Ly; ++t) {
957 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]);
959 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);
960 scr = l_c_rect * corr_1x2[t];
961 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);
962 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]);
974 if (use_outputfile) {
988 static const double PI = 4.0 * atan(1.0);
989 static const double PI2 = PI * PI;
990 static const double factor1 = 8.0 / (32.0 * PI2);
991 static const double factor2 = 16.0 / (32.0 * PI2);
993 static const double l_c_rect = 1.0 / 8.0;
999 std::vector<double> corr_scr(Lz);
1002 std::vector<double> corr_plaq(Lz, 0.0);
1005 for (
int z = 0; z < Lz; ++z) {
1006 corr_plaq[z] += corr_scr[z];
1009 for (
int z = 0; z < Lz; ++z) {
1010 corr_plaq[z] -= corr_scr[z];
1013 for (
int z = 0; z < Lz; ++z) {
1014 corr_plaq[z] += corr_scr[z];
1017 for (
int z = 0; z < Lz; ++z) {
1018 corr_plaq[z] *= factor1;
1023 std::vector<double> corr_1x1(Lz, 0.0);
1028 for (
int z = 0; z < Lz; ++z) {
1029 corr_1x1[z] += corr_scr[z];
1033 for (
int z = 0; z < Lz; ++z) {
1034 corr_1x1[z] -= corr_scr[z];
1038 for (
int z = 0; z < Lz; ++z) {
1039 corr_1x1[z] += corr_scr[z];
1042 for (
int z = 0; z < Lz; ++z) {
1043 corr_1x1[z] *= factor1;
1048 std::vector<double> corr_1x2(Lz, 0.0);
1052 for (
int z = 0; z < Lz; ++z) {
1053 corr_1x2[z] += corr_scr[z];
1056 for (
int z = 0; z < Lz; ++z) {
1057 corr_1x2[z] -= corr_scr[z];
1060 for (
int z = 0; z < Lz; ++z) {
1061 corr_1x2[z] += corr_scr[z];
1064 for (
int z = 0; z < Lz; ++z) {
1065 corr_1x2[z] *= factor2;
1072 if (use_outputfile) {
1077 for (
int z = 0; z < Lz; ++z) {
1078 vout.
general(
m_vl,
" Q_clover_plaq_z = %.8f %d %.16e\n", tt, z, corr_1x1[z]);
1083 scr = l_c_rect * corr_1x2[z];
1085 vout.
general(
m_vl,
" Q_plaq_z = %.8f %d %.16e\n", tt, z, corr_plaq[z]);
1097 if (use_outputfile) {
1107 static const double PI = 4.0 * atan(1.0);
1108 static const double PI2 = PI * PI;
1109 static const double factor1 = 8.0 / (32.0 * PI2);
1110 static const double factor2 = 16.0 / (32.0 * PI2);
1111 static const double l_c_rect = 1.0 / 8.0;
1118 vector<int> source_position(4, 0);
1119 vector<int> momentum_sink(3);
1121 for (
int ipx = 0; ipx <
m_max_mom + 1; ipx++) {
1122 for (
int ipy = 0; ipy < Np; ipy++) {
1123 for (
int ipz = 0; ipz < Np; ipz++) {
1124 momentum_sink[0] = ipx;
1128 std::vector<double> corr_plaq(Lz, 0);
1129 std::vector<double> corr_1x1(Lz, 0);
1130 std::vector<double> corr_1x2(Lz, 0);
1131 std::vector<double> corr_scr(Lz);
1135 for (
int t = 0; t < Lz; ++t) {
1136 corr_plaq[t] += corr_scr[t];
1139 for (
int t = 0; t < Lz; ++t) {
1140 corr_plaq[t] -= corr_scr[t];
1143 for (
int t = 0; t < Lz; ++t) {
1144 corr_plaq[t] += corr_scr[t];
1147 for (
int t = 0; t < Lz; ++t) {
1148 corr_plaq[t] *= factor1;
1156 for (
int t = 0; t < Lz; ++t) {
1157 corr_1x1[t] += corr_scr[t];
1161 for (
int t = 0; t < Lz; ++t) {
1162 corr_1x1[t] -= corr_scr[t];
1166 for (
int t = 0; t < Lz; ++t) {
1167 corr_1x1[t] += corr_scr[t];
1170 for (
int t = 0; t < Lz; ++t) {
1171 corr_1x1[t] *= factor1;
1178 for (
int t = 0; t < Lz; ++t) {
1179 corr_1x2[t] += corr_scr[t];
1182 for (
int t = 0; t < Lz; ++t) {
1183 corr_1x2[t] -= corr_scr[t];
1186 for (
int t = 0; t < Lz; ++t) {
1187 corr_1x2[t] += corr_scr[t];
1190 for (
int t = 0; t < Lz; ++t) {
1191 corr_1x2[t] *= factor2;
1198 if (use_outputfile) {
1203 for (
int t = 0; t < Lz; ++t) {
1204 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]);
1206 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);
1207 scr = l_c_rect * corr_1x2[t];
1208 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);
1209 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]);
1221 if (use_outputfile) {
1259 for (
int mu = 0; mu < Ndim; ++mu) {
1260 for (
int nu = mu + 1; nu < Ndim; ++nu) {