32 double c_plaq, c_rect;
38 err += params.
fetch_int(
"max_momentum", max_mom);
90 static const double l_c_rect = 1.0 / 8.0;
96 std::ofstream log_file;
105 double O2_plaq = 0.0;
106 for (
int mu = 0; mu < 6; ++mu) {
111 O2_1x1 *= 4.0 / Nvol / NPE;
113 O2_1x2 *= 8.0 / Nvol / NPE;
116 const double O2_rect = l_c_rect * O2_1x2;
118 O2_plaq *= 4.0 / Nvol / NPE;
121 for (
int mu = 0; mu < Ndim; ++mu) {
122 for (
int nu = 0; nu < Ndim; ++nu) {
125 double O1_plaq = 0.0;
126 for (
int rho = 0; rho < Ndim; rho++) {
127 if ((mu != rho) && (nu != rho)) {
130 int fac1 =
factor(mu, rho);
131 int fac2 =
factor(nu, rho);
146 O1_1x1 *= 2.0 / Nvol / NPE;
147 O1_1x2 *= 4.0 / Nvol / NPE;
148 O1_plaq *= 2.0 / Nvol / NPE;
149 vout.
general(
m_vl,
" O1_clover_plaq = %d %d %.8f %.16e\n", mu, nu, t_flow, O1_1x1);
150 double O1_rect = l_c_rect * O1_1x2;
151 vout.
general(
m_vl,
" O1_clover_1x2 = %d %d %.8f %.16e\n", mu, nu, t_flow, O1_1x2);
152 vout.
general(
m_vl,
" O1_clover_rect = %d %d %.8f %.16e\n", mu, nu, t_flow, O1_rect);
154 vout.
general(
m_vl,
" O1_clover_imp = %d %d %.8f %.16e\n", mu, nu, t_flow, O1_imp);
155 vout.
general(
m_vl,
" O1_plaq = %d %d %.8f %.16e\n", mu, nu, t_flow, O1_plaq);
179 const double normalization = double(Lt) / Nvol / NPE;
182 static const double l_c_rect = 1.0 / 8.0;
188 std::ofstream log_file;
195 for (
int mu = 0; mu < Ndim; ++mu) {
196 for (
int nu = 0; nu < Ndim; ++nu) {
197 std::vector<double> corr_plaq(Lt, 0);
198 std::vector<double> corr_1x1(Lt, 0);
199 std::vector<double> corr_1x2(Lt, 0);
200 std::vector<double> corr_scr(Lt);
201 for (
int rho = 0; rho < Ndim; rho++) {
202 if ((mu != rho) && (nu != rho)) {
205 int fac1 =
factor(mu, rho);
206 int fac2 =
factor(nu, rho);
208 for (
int t = 0; t < Lt; ++t) {
209 corr_plaq[t] += (fac1 * fac2 * corr_scr[t]);
212 for (
int t = 0; t < Lt; ++t) {
213 corr_1x1[t] += (fac1 * fac2 * corr_scr[t]);
216 for (
int t = 0; t < Lt; ++t) {
217 corr_1x2[t] += (fac1 * fac2 * corr_scr[t]);
224 for (
int t = 0; t < Lt; ++t) {
225 corr_plaq[t] *= 2 * normalization;
227 corr_1x1[t] *= 2 * normalization;
229 corr_1x2[t] *= 4 * normalization;
232 vout.
general(
m_vl,
" O1_clover_plaq_t = %d %d %.8f %d %.16e\n", mu, nu, t_flow, t, corr_1x1[t]);
233 double O1_rect = l_c_rect * corr_1x2[t];
234 vout.
general(
m_vl,
" O1_clover_rect_t = %d %d %.8f %d %.16e\n", mu, nu, t_flow, t, O1_rect);
236 vout.
general(
m_vl,
" O1_clover_imp_t = %d %d %.8f %d %.16e\n", mu, nu, t_flow, t, O1_imp);
238 vout.
general(
m_vl,
" O1_plaq_t = %d %d %.8f %d %.16e\n", mu, nu, t_flow, t, corr_plaq[t]);
273 const double normalization = double(Lt) / Nvol / NPE;
276 static const double l_c_rect = 1.0 / 8.0;
281 vector<int> source_position(4, 0);
282 vector<int> momentum_sink(3);
286 std::ofstream log_file;
293 for (
int ipx = 0; ipx <
m_max_mom + 1; ipx++) {
294 for (
int ipy = 0; ipy < Np; ipy++) {
295 for (
int ipz = 0; ipz < Np; ipz++) {
296 momentum_sink[0] = ipx;
299 for (
int mu = 0; mu < Ndim; ++mu) {
300 for (
int nu = 0; nu < Ndim; ++nu) {
301 std::vector<double> corr_plaq(Lt, 0);
302 std::vector<double> corr_1x1(Lt, 0);
303 std::vector<double> corr_1x2(Lt, 0);
304 std::vector<double> corr_scr(Lt);
305 for (
int rho = 0; rho < Ndim; rho++) {
306 if ((mu != rho) && (nu != rho)) {
309 int fac1 =
factor(mu, rho);
310 int fac2 =
factor(nu, rho);
312 for (
int t = 0; t < Lt; ++t) {
313 corr_plaq[t] += (fac1 * fac2 * corr_scr[t]);
316 for (
int t = 0; t < Lt; ++t) {
317 corr_1x1[t] += (fac1 * fac2 * corr_scr[t]);
320 for (
int t = 0; t < Lt; ++t) {
321 corr_1x2[t] += (fac1 * fac2 * corr_scr[t]);
328 for (
int t = 0; t < Lt; ++t) {
329 corr_plaq[t] *= 2 * normalization;
331 corr_1x1[t] *= 2 * normalization;
333 corr_1x2[t] *= 4 * normalization;
335 vout.
general(
m_vl,
" O1_clover_plaq_t_FT = %d %d %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], mu, nu, t_flow, t, corr_1x1[t]);
336 double O1_rect = l_c_rect * corr_1x2[t];
337 vout.
general(
m_vl,
" O1_clover_rect_t_FT = %d %d %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], mu, nu, t_flow, t, O1_rect);
339 vout.
general(
m_vl,
" O1_clover_imp_t_FT = %d %d %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], mu, nu, t_flow, t, O1_imp);
341 vout.
general(
m_vl,
" O1_plaq_t_FT = %d %d %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], mu, nu, t_flow, t, corr_plaq[t]);
379 const double normalization = double(Lx) / Nvol / NPE;
382 static const double l_c_rect = 1.0 / 8.0;
387 std::ofstream log_file;
394 for (
int mu = 0; mu < Ndim; ++mu) {
395 for (
int nu = 0; nu < Ndim; ++nu) {
396 std::vector<double> corr_plaq(Lx, 0);
397 std::vector<double> corr_1x1(Lx, 0);
398 std::vector<double> corr_1x2(Lx, 0);
399 std::vector<double> corr_scr(Lx);
400 for (
int rho = 0; rho < Ndim; rho++) {
401 if ((mu != rho) && (nu != rho)) {
404 int fac1 =
factor(mu, rho);
405 int fac2 =
factor(nu, rho);
407 for (
int x = 0; x < Lx; ++x) {
408 corr_plaq[x] += (fac1 * fac2 * corr_scr[x]);
411 for (
int x = 0; x < Lx; ++x) {
412 corr_1x1[x] += (fac1 * fac2 * corr_scr[x]);
415 for (
int x = 0; x < Lx; ++x) {
416 corr_1x2[x] += (fac1 * fac2 * corr_scr[x]);
423 for (
int x = 0; x < Lx; ++x) {
424 corr_plaq[x] *= 2 * normalization;
426 corr_1x1[x] *= 2 * normalization;
428 corr_1x2[x] *= 4 * normalization;
431 vout.
general(
m_vl,
" O1_clover_plaq_x = %d %d %.8f %d %.16e\n", mu, nu, t_flow, x, corr_1x1[x]);
432 double O1_rect = l_c_rect * corr_1x2[x];
433 vout.
general(
m_vl,
" O1_clover_rect_x = %d %d %.8f %d %.16e\n", mu, nu, t_flow, x, O1_rect);
435 vout.
general(
m_vl,
" O1_clover_imp_x = %d %d %.8f %d %.16e\n", mu, nu, t_flow, x, O1_imp);
437 vout.
general(
m_vl,
" O1_plaq_x = %d %d %.8f %d %.16e\n", mu, nu, t_flow, x, corr_plaq[x]);
471 const double normalization = double(Lx) / Nvol / NPE;
474 static const double l_c_rect = 1.0 / 8.0;
479 vector<int> source_position(4, 0);
480 vector<int> momentum_sink(3);
484 std::ofstream log_file;
491 for (
int ipx = 0; ipx <
m_max_mom + 1; ipx++) {
492 for (
int ipy = 0; ipy < Np; ipy++) {
493 for (
int ipz = 0; ipz < Np; ipz++) {
494 momentum_sink[0] = ipx;
497 for (
int mu = 0; mu < Ndim; ++mu) {
498 for (
int nu = 0; nu < Ndim; ++nu) {
499 std::vector<double> corr_plaq(Lx, 0);
500 std::vector<double> corr_1x1(Lx, 0);
501 std::vector<double> corr_1x2(Lx, 0);
502 std::vector<double> corr_scr(Lx);
503 for (
int rho = 0; rho < Ndim; rho++) {
504 if ((mu != rho) && (nu != rho)) {
507 int fac1 =
factor(mu, rho);
508 int fac2 =
factor(nu, rho);
510 for (
int t = 0; t < Lx; ++t) {
511 corr_plaq[t] += (fac1 * fac2 * corr_scr[t]);
514 for (
int t = 0; t < Lx; ++t) {
515 corr_1x1[t] += (fac1 * fac2 * corr_scr[t]);
518 for (
int t = 0; t < Lx; ++t) {
519 corr_1x2[t] += (fac1 * fac2 * corr_scr[t]);
526 for (
int t = 0; t < Lx; ++t) {
527 corr_plaq[t] *= 2 * normalization;
529 corr_1x1[t] *= 2 * normalization;
531 corr_1x2[t] *= 4 * normalization;
533 vout.
general(
m_vl,
" O1_clover_plaq_x_FT = %d %d %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], mu, nu, t_flow, t, corr_1x1[t]);
534 double O1_rect = l_c_rect * corr_1x2[t];
535 vout.
general(
m_vl,
" O1_clover_rect_x_FT = %d %d %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], mu, nu, t_flow, t, O1_rect);
537 vout.
general(
m_vl,
" O1_clover_imp_x_FT = %d %d %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], mu, nu, t_flow, t, O1_imp);
539 vout.
general(
m_vl,
" O1_plaq_x_FT = %d %d %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], mu, nu, t_flow, t, corr_plaq[t]);
577 const double normalization = double(Ly) / Nvol / NPE;
580 static const double l_c_rect = 1.0 / 8.0;
586 std::ofstream log_file;
593 for (
int mu = 0; mu < Ndim; ++mu) {
594 for (
int nu = 0; nu < Ndim; ++nu) {
595 std::vector<double> corr_plaq(Ly, 0);
596 std::vector<double> corr_1x1(Ly, 0);
597 std::vector<double> corr_1x2(Ly, 0);
598 std::vector<double> corr_scr(Ly);
599 for (
int rho = 0; rho < Ndim; rho++) {
600 if ((mu != rho) && (nu != rho)) {
603 int fac1 =
factor(mu, rho);
604 int fac2 =
factor(nu, rho);
606 for (
int y = 0; y < Ly; ++y) {
607 corr_plaq[y] += (fac1 * fac2 * corr_scr[y]);
610 for (
int y = 0; y < Ly; ++y) {
611 corr_1x1[y] += (fac1 * fac2 * corr_scr[y]);
614 for (
int y = 0; y < Ly; ++y) {
615 corr_1x2[y] += (fac1 * fac2 * corr_scr[y]);
622 for (
int y = 0; y < Ly; ++y) {
623 corr_plaq[y] *= 2 * normalization;
625 corr_1x1[y] *= 2 * normalization;
627 corr_1x2[y] *= 4 * normalization;
630 vout.
general(
m_vl,
" O1_clover_plaq_y = %d %d %.8f %d %.16e\n", mu, nu, t_flow, y, corr_1x1[y]);
631 double O1_rect = l_c_rect * corr_1x2[y];
632 vout.
general(
m_vl,
" O1_clover_rect_y = %d %d %.8f %d %.16e\n", mu, nu, t_flow, y, O1_rect);
634 vout.
general(
m_vl,
" O1_clover_imp_y = %d %d %.8f %d %.16e\n", mu, nu, t_flow, y, O1_imp);
636 vout.
general(
m_vl,
" O1_plaq_y = %d %d %.8f %d %.16e\n", mu, nu, t_flow, y, corr_plaq[y]);
670 const double normalization = double(Ly) / Nvol / NPE;
673 static const double l_c_rect = 1.0 / 8.0;
678 vector<int> source_position(4, 0);
679 vector<int> momentum_sink(3);
683 std::ofstream log_file;
690 for (
int ipx = 0; ipx <
m_max_mom + 1; ipx++) {
691 for (
int ipy = 0; ipy < Np; ipy++) {
692 for (
int ipz = 0; ipz < Np; ipz++) {
693 momentum_sink[0] = ipx;
696 for (
int mu = 0; mu < Ndim; ++mu) {
697 for (
int nu = 0; nu < Ndim; ++nu) {
698 std::vector<double> corr_plaq(Ly, 0);
699 std::vector<double> corr_1x1(Ly, 0);
700 std::vector<double> corr_1x2(Ly, 0);
701 std::vector<double> corr_scr(Ly);
702 for (
int rho = 0; rho < Ndim; rho++) {
703 if ((mu != rho) && (nu != rho)) {
706 int fac1 =
factor(mu, rho);
707 int fac2 =
factor(nu, rho);
709 for (
int t = 0; t < Ly; ++t) {
710 corr_plaq[t] += (fac1 * fac2 * corr_scr[t]);
713 for (
int t = 0; t < Ly; ++t) {
714 corr_1x1[t] += (fac1 * fac2 * corr_scr[t]);
717 for (
int t = 0; t < Ly; ++t) {
718 corr_1x2[t] += (fac1 * fac2 * corr_scr[t]);
725 for (
int t = 0; t < Ly; ++t) {
726 corr_plaq[t] *= 2 * normalization;
728 corr_1x1[t] *= 2 * normalization;
730 corr_1x2[t] *= 4 * normalization;
732 vout.
general(
m_vl,
" O1_clover_plaq_y_FT = %d %d %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], mu, nu, t_flow, t, corr_1x1[t]);
733 double O1_rect = l_c_rect * corr_1x2[t];
734 vout.
general(
m_vl,
" O1_clover_rect_y_FT = %d %d %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], mu, nu, t_flow, t, O1_rect);
736 vout.
general(
m_vl,
" O1_clover_imp_y_FT = %d %d %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], mu, nu, t_flow, t, O1_imp);
738 vout.
general(
m_vl,
" O1_plaq_y_FT = %d %d %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], mu, nu, t_flow, t, corr_plaq[t]);
776 const double normalization = double(Lz) / Nvol / NPE;
779 static const double l_c_rect = 1.0 / 8.0;
785 std::ofstream log_file;
792 for (
int mu = 0; mu < Ndim; ++mu) {
793 for (
int nu = 0; nu < Ndim; ++nu) {
794 std::vector<double> corr_plaq(Lz, 0);
795 std::vector<double> corr_1x1(Lz, 0);
796 std::vector<double> corr_1x2(Lz, 0);
797 std::vector<double> corr_scr(Lz);
798 for (
int rho = 0; rho < Ndim; rho++) {
799 if ((mu != rho) && (nu != rho)) {
802 int fac1 =
factor(mu, rho);
803 int fac2 =
factor(nu, rho);
805 for (
int z = 0; z < Lz; ++z) {
806 corr_plaq[z] += (fac1 * fac2 * corr_scr[z]);
809 for (
int z = 0; z < Lz; ++z) {
810 corr_1x1[z] += (fac1 * fac2 * corr_scr[z]);
813 for (
int z = 0; z < Lz; ++z) {
814 corr_1x2[z] += (fac1 * fac2 * corr_scr[z]);
821 for (
int z = 0; z < Lz; ++z) {
822 corr_plaq[z] *= 2 * normalization;
824 corr_1x1[z] *= 2 * normalization;
826 corr_1x2[z] *= 4 * normalization;
829 vout.
general(
m_vl,
" O1_clover_plaq_z = %d %d %.8f %d %.16e\n", mu, nu, t_flow, z, corr_1x1[z]);
830 double O1_rect = l_c_rect * corr_1x2[z];
831 vout.
general(
m_vl,
" O1_clover_rect_z = %d %d %.8f %d %.16e\n", mu, nu, t_flow, z, O1_rect);
833 vout.
general(
m_vl,
" O1_clover_imp_z = %d %d %.8f %d %.16e\n", mu, nu, t_flow, z, O1_imp);
835 vout.
general(
m_vl,
" O1_plaq_z = %d %d %.8f %d %.16e\n", mu, nu, t_flow, z, corr_plaq[z]);
869 const double normalization = double(Lz) / Nvol / NPE;
872 static const double l_c_rect = 1.0 / 8.0;
877 vector<int> source_position(4, 0);
878 vector<int> momentum_sink(3);
882 std::ofstream log_file;
889 for (
int ipx = 0; ipx <
m_max_mom + 1; ipx++) {
890 for (
int ipy = 0; ipy < Np; ipy++) {
891 for (
int ipz = 0; ipz < Np; ipz++) {
892 momentum_sink[0] = ipx;
895 for (
int mu = 0; mu < Ndim; ++mu) {
896 for (
int nu = 0; nu < Ndim; ++nu) {
897 std::vector<double> corr_plaq(Lz, 0);
898 std::vector<double> corr_1x1(Lz, 0);
899 std::vector<double> corr_1x2(Lz, 0);
900 std::vector<double> corr_scr(Lz);
901 for (
int rho = 0; rho < Ndim; rho++) {
902 if ((mu != rho) && (nu != rho)) {
905 int fac1 =
factor(mu, rho);
906 int fac2 =
factor(nu, rho);
908 for (
int t = 0; t < Lz; ++t) {
909 corr_plaq[t] += (fac1 * fac2 * corr_scr[t]);
912 for (
int t = 0; t < Lz; ++t) {
913 corr_1x1[t] += (fac1 * fac2 * corr_scr[t]);
916 for (
int t = 0; t < Lz; ++t) {
917 corr_1x2[t] += (fac1 * fac2 * corr_scr[t]);
924 for (
int t = 0; t < Lz; ++t) {
925 corr_plaq[t] *= 2 * normalization;
927 corr_1x1[t] *= 2 * normalization;
929 corr_1x2[t] *= 4 * normalization;
931 vout.
general(
m_vl,
" O1_clover_plaq_z_FT = %d %d %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], mu, nu, t_flow, t, corr_1x1[t]);
932 double O1_rect = l_c_rect * corr_1x2[t];
933 vout.
general(
m_vl,
" O1_clover_rect_z_FT = %d %d %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], mu, nu, t_flow, t, O1_rect);
935 vout.
general(
m_vl,
" O1_clover_imp_z_FT = %d %d %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], mu, nu, t_flow, t, O1_imp);
937 vout.
general(
m_vl,
" O1_plaq_z_FT = %d %d %d %d %d %.8f %d %.16e\n", momentum_sink[0], momentum_sink[1], momentum_sink[2], mu, nu, t_flow, t, corr_plaq[t]);
973 for (
int mu = 0; mu < Ndim; ++mu) {
974 for (
int nu = mu + 1; nu < Ndim; ++nu) {
990 }
else if (mu > nu) {
1012 if ((mu == 0) && (nu == 1))
return 0;
1013 else if ((mu == 0) && (nu == 2))
return 1;
1014 else if ((mu == 0) && (nu == 3))
return 2;
1015 else if ((mu == 1) && (nu == 2))
return 3;
1016 else if ((mu == 1) && (nu == 3))
return 4;
1017 else if ((mu == 2) && (nu == 3))
return 5;