Bridge++  Ver. 2.0.2
staple_SF.cpp
Go to the documentation of this file.
1 
14 #include "staple_SF.h"
15 
32 const std::string Staple_SF::class_name = "Staple_SF";
33 
34 //====================================================================
36 {
37  std::string vlevel;
38  if (!params.fetch_string("verbose_level", vlevel)) {
39  m_vl = vout.set_verbose_level(vlevel);
40  }
41 
42  //- fetch and check input parameters
43  std::vector<double> phi, phipr, p_omega;
44 
45  int err = 0;
46  err += params.fetch_double_vector("phi", phi);
47  err += params.fetch_double_vector("phipr", phipr);
48  err += params.fetch_double_vector("p_omega", p_omega);
49 
50  if (err) {
51  vout.crucial(m_vl, "Error at %s: input parameter not found.\n", class_name.c_str());
52  exit(EXIT_FAILURE);
53  }
54 
55 
56  set_parameters(phi, phipr, p_omega); // call std::vector version
57 }
58 
59 
60 //====================================================================
62 {
63  params.set_double_vector("phi", m_phi);
64  params.set_double_vector("phipr", m_phipr);
65  params.set_double_vector("p_omega", m_p_omega);
66 
67  params.set_string("verbose_level", vout.get_verbose_level(m_vl));
68 }
69 
70 
71 //====================================================================
72 
88 void Staple_SF::set_parameters(const std::vector<double>& phi,
89  const std::vector<double>& phipr,
90  const std::vector<double>& p_omega)
91 {
92  //- print input parameters
93  vout.general(m_vl, "%s:\n", class_name.c_str());
94  vout.general(m_vl, " phi1 = %12.6f\n", phi[0]);
95  vout.general(m_vl, " phi2 = %12.6f\n", phi[1]);
96  vout.general(m_vl, " phi3 = %12.6f\n", phi[2]);
97  vout.general(m_vl, " phipr1 = %12.6f\n", phipr[0]);
98  vout.general(m_vl, " phipr2 = %12.6f\n", phipr[1]);
99  vout.general(m_vl, " phipr3 = %12.6f\n", phipr[2]);
100  vout.general(m_vl, " p_omega1 = %12.6f\n", p_omega[0]);
101  vout.general(m_vl, " p_omega2 = %12.6f\n", p_omega[1]);
102  vout.general(m_vl, " p_omega3 = %12.6f\n", p_omega[2]);
103 
104  //- range check
105  // NB. phi,phipr,p_omega == 0 is allowed.
106  assert(phi.size() == 3);
107  assert(phipr.size() == 3);
108  assert(p_omega.size() == 3);
109 
110  m_i_omega0.zero();
111  m_i_omega0.set(0, 0, 0.0, p_omega[0]);
112  m_i_omega0.set(1, 1, 0.0, p_omega[1]);
113  m_i_omega0.set(2, 2, 0.0, p_omega[2]);
114 
115  m_initialized = 1;
116 
117  // store raw parameter values
118  m_phi.resize(3);
119  m_phi[0] = phi[0];
120  m_phi[1] = phi[1];
121  m_phi[2] = phi[2];
122 
123  m_phipr.resize(3);
124  m_phipr[0] = phipr[0];
125  m_phipr[1] = phipr[1];
126  m_phipr[2] = phipr[2];
127 
128  m_p_omega.resize(3);
129  m_p_omega[0] = p_omega[0];
130  m_p_omega[1] = p_omega[1];
131  m_p_omega[2] = p_omega[2];
132 
135 }
136 
137 
138 //====================================================================
139 void Staple_SF::set_parameters(const std::vector<double>& phi,
140  const std::vector<double>& phipr)
141 {
142  m_i_omega0.zero();
143  m_i_omega0.set(0, 0, 0.0, 1.0);
144  m_i_omega0.set(1, 1, 0.0, -0.5);
145  m_i_omega0.set(2, 2, 0.0, -0.5);
146 
147  m_initialized = 1;
148 
149  // store raw parameter values
150  m_phi.resize(3);
151  m_phi[0] = phi[0];
152  m_phi[1] = phi[1];
153  m_phi[2] = phi[2];
154 
155  m_phipr.resize(3);
156  m_phipr[0] = phipr[0];
157  m_phipr[1] = phipr[1];
158  m_phipr[2] = phipr[2];
159 
162 }
163 
164 
165 //====================================================================
166 
210 double Staple_SF::sf_coupling_plaq(const Field_G& U, const double ct)
211 {
212  if (!m_initialized) {
213  vout.crucial(m_vl, "Error at %s: Parameter is not initialized.\n", class_name.c_str());
214  exit(EXIT_FAILURE);
215  }
216 
217  const int Nc = CommonParameters::Nc();
218  const int Ndim = CommonParameters::Ndim();
219 
220  const int Nx = CommonParameters::Nx();
221  const int Ny = CommonParameters::Ny();
222  const int Nz = CommonParameters::Nz();
223  const int Nt = CommonParameters::Nt();
224  const int NPEt = CommonParameters::NPEt();
225 
226  const int Lx = CommonParameters::Lx();
227 
228  double plaq = 0.0;
229  double plaqt0 = 0.0;
230  double plaqtT = 0.0;
231 
232  for (int nu = 0; nu < Ndim - 1; nu++) {
233  Field_G staple;
234  upper(staple, U, 3, nu);
235 
236  for (int z = 0; z < Nz; z++) {
237  for (int y = 0; y < Ny; y++) {
238  for (int x = 0; x < Nx; x++) {
239  // boundary
240  if (Communicator::ipe(3) == 0) {
241  int t = 0;
242  int site = m_index.site(x, y, z, t);
243 
244  Mat_SU_N up(Nc);
245  up = staple.mat(site) * U.mat_dag(site, 3);
246  double scr = ReTr(m_i_omega0 * up);
247 
248  /*
249  up.unit();
250  up *= staple.mat(site);
251  up *= U->mat_dag(site,3);
252  up *= m_i_omega0;
253  scr = ReTr( up );
254  */
255  plaq -= scr;
256  plaqt0 += scr;
257  }
258  // boundary
259  if (Communicator::ipe(3) == NPEt - 1) {
260  int t = Nt - 1;
261  int site = m_index.site(x, y, z, t);
262 
263  Mat_SU_N up(Nc);
264  up = staple.mat_dag(site) * U.mat(site, 3);
265  double scr = ReTr(m_i_omega0 * up);
266 
267  /*
268  up.unit();
269  up *= staple.mat_dag(site);
270  up *= U->mat(site,3);
271  up *= m_i_omega0;
272  scr = ReTr( up );
273  */
274  plaq += scr;
275  plaqtT += scr;
276  }
277  }
278  }
279  }
280  }
281  plaq = Communicator::reduce_sum(plaq);
282  plaqt0 = Communicator::reduce_sum(plaqt0);
283  plaqtT = Communicator::reduce_sum(plaqtT);
284 
285  plaq *= ct / Lx;
286  plaqt0 *= ct / Lx;
287  plaqtT *= ct / Lx;
288 
289  vout.general(m_vl, "SF_delSg_plaq, from 0, from T = %.8f %.8f %.8f\n", plaq, plaqt0, plaqtT);
290 
291  return plaq;
292 }
293 
294 
295 //====================================================================
296 
395 double Staple_SF::sf_coupling_rect(const Field_G& U, const double ctr)
396 {
397  if (!m_initialized) {
398  vout.crucial(m_vl, "Error at %s: Parameter is not initialized.\n", class_name.c_str());
399  exit(EXIT_FAILURE);
400  }
401 
402  const int Nc = CommonParameters::Nc();
403  const int Ndim = CommonParameters::Ndim();
404  const int Nvol = CommonParameters::Nvol();
405 
406  const int Nx = CommonParameters::Nx();
407  const int Ny = CommonParameters::Ny();
408  const int Nz = CommonParameters::Nz();
409  const int Nt = CommonParameters::Nt();
410  const int NPEt = CommonParameters::NPEt();
411 
412  const int Lx = CommonParameters::Lx();
413 
414  const int nu = 3;
415 
416  double rect01 = 0.0;
417  double rect02 = 0.0;
418  double rect03 = 0.0;
419  double rectt1 = 0.0;
420  double rectt2 = 0.0;
421  double rectt3 = 0.0;
422 
423  for (int mu = 0; mu < Ndim - 1; mu++) {
424  // rect01
425  // <---<---+
426  // | |
427  // t=0 x--->---+
428  // omega0
429 
430  // rect02
431  // <---<---+
432  // | |
433  // t=0 +---x---+
434  // omega0
435 
436  // rectt1
437  // omega0
438  // t=Nt x--->---+
439  // | |
440  // +---<---+
441 
442  // rectt2
443  // omega0
444  // t=Nt +---x---+
445  // | |
446  // <---<---+
447 
448  Field_G Cup2;
449  upper(Cup2, U, nu, mu);
450 
451  Field_G Umu;
452  copy(Umu, 0, U, mu);
453 
454  Field_G Unu;
455  copy(Unu, 0, U, nu);
456 
457  Field_G v;
458  m_shift.backward(v, Cup2, mu);
459 
460  Field_G c;
461  m_shift.backward(c, Umu, nu);
462 
463  for (int z = 0; z < Nz; z++) {
464  for (int y = 0; y < Ny; y++) {
465  for (int x = 0; x < Nx; x++) {
466  int t = 0;
467  if (Communicator::ipe(3) == 0) {
468  int site = m_index.site(x, y, z, t);
469 
470  Mat_SU_N wmat(Nc);
471  wmat = m_wk * v.mat(site);
472 
473  Mat_SU_N cmat(Nc);
474  cmat = wmat * c.mat_dag(site);
475 
476  wmat = cmat * Unu.mat_dag(site);
477  rect01 += ReTr(m_i_omega0 * wmat);
478 
479  wmat = m_i_omega0 * v.mat(site);
480  cmat = wmat * c.mat_dag(site);
481  wmat = cmat * Unu.mat_dag(site);
482  rect02 += ReTr(m_wk * wmat);
483  }
484 
485  t = Nt - 1;
486  if (Communicator::ipe(3) == NPEt - 1) {
487  int site = m_index.site(x, y, z, t);
488 
489  Mat_SU_N cmat(Nc);
490  cmat = m_i_omega0 * m_wkpr;
491 
492  Mat_SU_N wmat(Nc);
493  wmat = cmat * v.mat_dag(site);
494 
495  cmat = Unu.mat(site) * wmat;
496  rectt1 += ReTr(cmat * U.mat_dag(site, mu));
497 
498  cmat = m_i_omega0 * v.mat_dag(site);
499  wmat = m_wkpr * cmat;
500  cmat = Unu.mat(site) * wmat;
501  rectt2 += ReTr(cmat * U.mat_dag(site, mu));
502  }
503  }
504  }
505  }
506 
507  // rect03
508  // +---+
509  // | |
510  // v ^
511  // | |
512  // t=0 x--->
513  // omega0
514 
515  Field_G Cup1;
516  upper(Cup1, U, mu, nu);
517 
518  m_shift.backward(v, Unu, mu);
519  m_shift.backward(c, Cup1, nu);
520 
521  for (int z = 0; z < Nz; z++) {
522  for (int y = 0; y < Ny; y++) {
523  for (int x = 0; x < Nx; x++) {
524  int t = 0;
525  if (Communicator::ipe(3) == 0) {
526  int site = m_index.site(x, y, z, t);
527 
528  Mat_SU_N wmat(Nc);
529  wmat = c.mat(site) * v.mat_dag(site);
530 
531  Mat_SU_N cmat(Nc);
532  cmat = Unu.mat(site) * wmat;
533 
534  wmat = m_wk * cmat.dag();
535  rect03 += ReTr(m_i_omega0 * wmat);
536  }
537  }
538  }
539  }
540 
541  // rectt3
542  // omega0
543  // t=Nt x--->
544  // | |
545  // ^ v
546  // | |
547  // +---+
548 
549  Field_G Cdn1;
550  lower(Cdn1, U, mu, nu);
551 
552  m_shift.backward(v, Unu, mu);
553 
554  for (int z = 0; z < Nz; z++) {
555  for (int y = 0; y < Ny; y++) {
556  for (int x = 0; x < Nx; x++) {
557  int t = Nt - 1;
558  if (Communicator::ipe(3) == NPEt - 1) {
559  int site = m_index.site(x, y, z, t);
560 
561  Mat_SU_N wmat(Nc);
562  wmat = m_i_omega0 * m_wkpr;
563 
564  Mat_SU_N cmat(Nc);
565  cmat = wmat * v.mat_dag(site);
566 
567  wmat = cmat * Cdn1.mat_dag(site);
568  rectt3 += ReTr(Unu.mat(site) * wmat);
569  }
570  }
571  }
572  }
573  }
574  rect01 = Communicator::reduce_sum(rect01);
575  rect02 = Communicator::reduce_sum(rect02);
576  rect03 = Communicator::reduce_sum(rect03);
577  rectt1 = Communicator::reduce_sum(rectt1);
578  rectt2 = Communicator::reduce_sum(rectt2);
579  rectt3 = Communicator::reduce_sum(rectt3);
580 
581  rect01 *= ctr / Lx;
582  rect02 *= ctr / Lx;
583  rect03 /= Lx;
584  rectt1 *= ctr / Lx;
585  rectt2 *= ctr / Lx;
586  rectt3 /= Lx;
587 
588  double rect = -rect01 - rect02 - rect03 + rectt1 + rectt2 + rectt3;
589 
590  vout.general(m_vl, "SF_delSg_rect, at 01, 02, 03, at T1, T2, T3 = %.8f %.8f %.8f %.8f %.8f %.8f %.8f\n",
591  rect, rect01, rect02, rect03, rectt1, rectt2, rectt3);
592 
593  return rect;
594 }
595 
596 
597 //====================================================================
598 
607 {
608  if (!m_initialized) {
609  vout.crucial(m_vl, "Error at %s: Parameter is not initialized.\n", class_name.c_str());
610  exit(EXIT_FAILURE);
611  }
612  // return (plaq_s(U) +plaq_t(U))/2;
613  return(plaq_s(U) + plaq_t(U));
614 }
615 
616 
617 //====================================================================
618 
632 double Staple_SF::plaquette_ct(const Field_G& U, const double ct)
633 {
634  if (!m_initialized) {
635  vout.crucial(m_vl, "Error at %s: Parameter is not initialized.\n", class_name.c_str());
636  exit(EXIT_FAILURE);
637  }
638  return(plaq_s(U) + plaq_t_ct(U, ct));
639 }
640 
641 
642 //====================================================================
643 
652 double Staple_SF::plaq_s(const Field_G& U)
653 {
654  const int Nvol = CommonParameters::Nvol();
655 
656  Field_G staple;
657  double plaq = 0.0;
658 
659  upper(staple, U, 0, 1);
660  for (int site = 0; site < Nvol; site++) {
661  plaq += ReTr(U.mat(site, 0) * staple.mat_dag(site)); // P_xy
662  }
663 
664  upper(staple, U, 1, 2);
665  for (int site = 0; site < Nvol; site++) {
666  plaq += ReTr(U.mat(site, 1) * staple.mat_dag(site)); // P_yz
667  }
668 
669  upper(staple, U, 2, 0);
670  for (int site = 0; site < Nvol; site++) {
671  plaq += ReTr(U.mat(site, 2) * staple.mat_dag(site)); // P_zx
672  }
673 
674  plaq = Communicator::reduce_sum(plaq);
675 
676  return plaq;
677 }
678 
679 
680 //====================================================================
681 
690 double Staple_SF::plaq_t(const Field_G& U)
691 {
692  if (!m_initialized) {
693  vout.crucial(m_vl, "Error at %s: Parameter is not initialized.\n", class_name.c_str());
694  exit(EXIT_FAILURE);
695  }
696 
697  const int Ndim = CommonParameters::Ndim();
698  const int Nvol = CommonParameters::Nvol();
699 
700  Field_G staple;
701  double plaq = 0.0;
702 
703  for (int nu = 0; nu < Ndim - 1; nu++) {
704  lower(staple, U, 3, nu);
705  // staple = upper(U,3,nu);
706  for (int site = 0; site < Nvol; site++) {
707  plaq += ReTr(U.mat(site, 3) * staple.mat_dag(site)); // P_tk
708  }
709  }
710 
711  plaq = Communicator::reduce_sum(plaq);
712 
713  return plaq;
714 }
715 
716 
717 //====================================================================
718 
733 double Staple_SF::plaq_t_ct(const Field_G& U, const double ct)
734 {
735  if (!m_initialized) {
736  vout.crucial(m_vl, "Error at %s: Parameter is not initialized.\n", class_name.c_str());
737  exit(EXIT_FAILURE);
738  }
739 
740  const int Ndim = CommonParameters::Ndim();
741  const int Nt = CommonParameters::Nt();
742  const int Nvol = CommonParameters::Nvol();
743  const int NPEt = CommonParameters::NPEt();
744 
745  Field_G staple;
746  double plaq = 0.0;
747 
748  for (int nu = 0; nu < Ndim - 1; nu++) {
749  lower(staple, U, 3, nu);
750  // If the node is at the boundary the temporal plaquette is multiplied with ct.
751  if (Communicator::ipe(3) == 0) {
753  }
754  if (Communicator::ipe(3) == NPEt - 1) {
755  Field_SF::mult_ct_boundary(staple, Nt - 1, ct);
756  }
757  for (int site = 0; site < Nvol; site++) {
758  plaq += ReTr(U.mat(site, 3) * staple.mat_dag(site)); // P_tk
759  }
760  }
761 
762  plaq = Communicator::reduce_sum(plaq);
763 
764  return plaq;
765 }
766 
767 
768 //====================================================================
769 
788 void Staple_SF::staple(Field_G& W, const Field_G& U, const int mu)
789 {
790  if (!m_initialized) {
791  vout.crucial(m_vl, "Error at %s: Parameter is not initialized.\n", class_name.c_str());
792  exit(EXIT_FAILURE);
793  }
794 
795  const int Ndim = CommonParameters::Ndim();
796 
797  W.set(0.0);
798 
799  for (int nu = 0; nu < Ndim; nu++) {
800  if (nu != mu) {
801  Field_G c_tmp;
802 
803  upper(c_tmp, U, mu, nu);
804  axpy(W, 1.0, c_tmp);
805 
806  lower(c_tmp, U, mu, nu);
807  axpy(W, 1.0, c_tmp);
808  }
809  }
810 }
811 
812 
813 //====================================================================
814 
833 void Staple_SF::staple_ct(Field_G& W, const Field_G& U, const int mu, const double ct)
834 {
835  const int Ndim = CommonParameters::Ndim();
836  const int Nt = CommonParameters::Nt();
837  const int NPEt = CommonParameters::NPEt();
838 
839  W.set(0.0);
840 
841  for (int nu = 0; nu < Ndim; nu++) {
842  if (nu != mu) {
843  Field_G staple_upper;
844  Field_G staple_lower;
845 
846  upper(staple_upper, U, mu, nu);
847  lower(staple_lower, U, mu, nu);
848 
849  if (Communicator::ipe(3) == 0) {
850  if (mu == 3) {
851  Field_SF::mult_ct_boundary(staple_upper, 0, ct);
852  Field_SF::mult_ct_boundary(staple_lower, 0, ct);
853  }
854  if (nu == 3) {
855  Field_SF::mult_ct_boundary(staple_lower, 1, ct);
856  }
857  }
858 
859  if (Communicator::ipe(3) == NPEt - 1) {
860  if (mu == 3) {
861  Field_SF::mult_ct_boundary(staple_upper, Nt - 1, ct);
862  Field_SF::mult_ct_boundary(staple_lower, Nt - 1, ct);
863  }
864  if (nu == 3) {
865  Field_SF::mult_ct_boundary(staple_upper, Nt - 1, ct);
866  }
867  }
868 
869  axpy(W, 1.0, staple_upper);
870  axpy(W, 1.0, staple_lower);
871  }
872  }
873 }
874 
875 
876 //====================================================================
877 void Staple_SF::upper(Field_G& c, const Field_G& U, const int mu, const int nu)
878 {
879  if (!m_initialized) {
880  vout.crucial(m_vl, "Error at %s: Parameter is not initialized.\n", class_name.c_str());
881  exit(EXIT_FAILURE);
882  }
883 
884  const int Nvol = CommonParameters::Nvol();
885 
886  // (1) mu (2)
887  // +-->--+
888  // nu | |
889  // i+ +
890  Field_G Umu;
891  copy(Umu, 0, U, mu);
892 
893  Field_G Unu;
894  copy(Unu, 0, U, nu);
895  if (mu != 3) Field_SF::set_boundary_wk(Umu, m_wk);
896  if (nu != 3) Field_SF::set_boundary_wk(Unu, m_wk);
897 
898  Field_G v;
899  m_shift.backward(v, Unu, mu);
900  m_shift.backward(c, Umu, nu);
901  if (mu == 3) Field_SF::set_boundary_wkpr(v, m_wkpr);
902  if (nu == 3) Field_SF::set_boundary_wkpr(c, m_wkpr);
903 
904  Field_G w;
905  mult_Field_Gnd(w, 0, c, 0, v, 0);
906  mult_Field_Gnn(c, 0, Unu, 0, w, 0);
907  if (mu != 3) Field_SF::set_boundary_zero(c);
908 }
909 
910 
911 //====================================================================
912 void Staple_SF::lower(Field_G& c, const Field_G& U, const int mu, const int nu)
913 {
914  if (!m_initialized) {
915  vout.crucial(m_vl, "Error at %s: Parameter is not initialized.\n",
916  class_name.c_str());
917  exit(EXIT_FAILURE);
918  }
919 
920  const int Nvol = CommonParameters::Nvol();
921 
922  // + +
923  // nu | |
924  // i+-->--+
925  // (1) mu (2)
926  Field_G Umu;
927  copy(Umu, 0, U, mu);
928 
929  Field_G Unu;
930  copy(Unu, 0, U, nu);
931  if (mu != 3) Field_SF::set_boundary_wk(Umu, m_wk);
932  if (nu != 3) Field_SF::set_boundary_wk(Unu, m_wk);
933 
934  Field_G w;
935  m_shift.backward(w, Unu, mu);
936  if (mu == 3) Field_SF::set_boundary_wkpr(w, m_wkpr);
937 
938  Field_G v;
939  mult_Field_Gnn(v, 0, Umu, 0, w, 0);
940  mult_Field_Gdn(w, 0, Unu, 0, v, 0);
941 
942  m_shift.forward(c, w, nu);
943  if (mu != 3) Field_SF::set_boundary_zero(c);
944 }
945 
946 
947 //====================================================================
948 
967 {
968  const int Lx = CommonParameters::Lx();
969  const int Ly = CommonParameters::Ly();
970  const int Lz = CommonParameters::Lz();
971  const int Lt = CommonParameters::Lt();
972 
973  const double plaq = plaquette(U);
974  const double plaq2 = plaq + 3 * 3 * Lx * Ly * Lz;
975 
976  vout.general(m_vl, "plaq_SF without boundary spatial plaq = %.8f\n",
977  plaq / (3 * Lx * Ly * Lz * (6 * Lt - 3)));
978  vout.general(m_vl, "plaq_SF with boundary spatial plaq = %.8f\n",
979  plaq2 / (3 * 6 * Lx * Ly * Lz * Lt));
980 }
981 
982 
983 //============================================================END=====
Staple_SF::m_index
Index_lex m_index
Definition: staple_SF.h:45
CommonParameters::Ny
static int Ny()
Definition: commonParameters.h:106
Field_SF::set_boundary_wkpr
void set_boundary_wkpr(Field_G &u, const Mat_SU_N &wkpr)
Definition: field_SF.cpp:63
CommonParameters::Nz
static int Nz()
Definition: commonParameters.h:107
mult_Field_Gdn
void mult_Field_Gdn(Field_G &W, const int ex, const Field_G &U1, const int ex1, const Field_G &U2, const int ex2)
Definition: field_G_imp.cpp:134
Parameters::set_string
void set_string(const string &key, const string &value)
Definition: parameters.cpp:39
Staple_SF::set_parameters
void set_parameters(const Parameters &params)
Definition: staple_SF.cpp:35
Staple_SF::staple_ct
void staple_ct(Field_G &, const Field_G &, const int, const double ct)
Definition: staple_SF.cpp:833
ShiftField_lex::forward
void forward(Field &, const Field &, const int mu)
Definition: shiftField_lex.cpp:79
CommonParameters::Ndim
static int Ndim()
Definition: commonParameters.h:117
Field::set
void set(const int jin, const int site, const int jex, double v)
Definition: field.h:175
Parameters
Class for parameters.
Definition: parameters.h:46
Field_G::mat_dag
Mat_SU_N mat_dag(const int site, const int mn=0) const
Definition: field_G.h:127
CommonParameters::Ly
static int Ly()
Definition: commonParameters.h:92
CommonParameters::Nvol
static int Nvol()
Definition: commonParameters.h:109
Staple_SF::m_shift
ShiftField_lex m_shift
Definition: staple_SF.h:46
Staple_SF::plaquette
double plaquette(const Field_G &)
Definition: staple_SF.cpp:606
Staple_SF::sf_coupling_rect
double sf_coupling_rect(const Field_G &, const double ctr)
Definition: staple_SF.cpp:395
Field_SF::set_boundary_wk
void set_boundary_wk(Field_G &u, const Mat_SU_N &wk)
Definition: field_SF.cpp:32
Staple_SF::m_wkpr
Mat_SU_N m_wkpr
Definition: staple_SF.h:48
axpy
void axpy(Field &y, const double a, const Field &x)
axpy(y, a, x): y := a * x + y
Definition: field.cpp:380
Parameters::set_double_vector
void set_double_vector(const string &key, const vector< double > &value)
Definition: parameters.cpp:42
Staple_SF::staple
void staple(Field_G &, const Field_G &, const int)
Definition: staple_SF.cpp:788
Staple_SF::upper
void upper(Field_G &, const Field_G &, const int, const int)
Definition: staple_SF.cpp:877
Staple_SF::m_phi
std::vector< double > m_phi
Definition: staple_SF.h:51
copy
void copy(Field &y, const Field &x)
copy(y, x): y = x
Definition: field.cpp:212
Staple_SF::plaquette_ct
double plaquette_ct(const Field_G &, const double ct)
Definition: staple_SF.cpp:632
Staple_SF::m_i_omega0
Mat_SU_N m_i_omega0
Definition: staple_SF.h:48
SU_N::Mat_SU_N::set
void set(int c, const double &re, const double &im)
Definition: mat_SU_N.h:137
Field_SF::mult_ct_boundary
void mult_ct_boundary(Field_G &u, const int t, const double ct)
Definition: field_SF.cpp:185
CommonParameters::Nx
static int Nx()
Definition: commonParameters.h:105
Field_SF::set_boundary_zero
void set_boundary_zero(Field_G &u)
Definition: field_SF.cpp:96
Staple_SF::m_initialized
int m_initialized
Definition: staple_SF.h:49
CommonParameters::Lt
static int Lt()
Definition: commonParameters.h:94
Communicator::reduce_sum
static int reduce_sum(int count, dcomplex *recv_buf, dcomplex *send_buf, int pattern=0)
make a global sum of an array of dcomplex over the communicator. pattern specifies the dimensions to ...
Definition: communicator.cpp:263
CommonParameters::Lx
static int Lx()
Definition: commonParameters.h:91
CommonParameters::Nc
static int Nc()
Definition: commonParameters.h:115
Staple_SF::sf_coupling_plaq
double sf_coupling_plaq(const Field_G &, const double ct)
Definition: staple_SF.cpp:210
SU_N::Mat_SU_N::zero
Mat_SU_N & zero()
Definition: mat_SU_N.h:429
CommonParameters::Lz
static int Lz()
Definition: commonParameters.h:93
CommonParameters::Nt
static int Nt()
Definition: commonParameters.h:108
SU_N::Mat_SU_N
Definition: mat_SU_N.h:36
Staple_SF::m_phipr
std::vector< double > m_phipr
Definition: staple_SF.h:51
Index_lex::site
int site(const int &x, const int &y, const int &z, const int &t) const
Definition: index_lex.h:55
Staple_SF::m_p_omega
std::vector< double > m_p_omega
Definition: staple_SF.h:51
Field_SF::set_boundary_matrix
void set_boundary_matrix(Mat_SU_N &wk, const std::vector< double > &phi)
Definition: field_SF.cpp:216
Staple_SF::plaq_t_ct
double plaq_t_ct(const Field_G &, const double ct)
Definition: staple_SF.cpp:733
Staple_SF::m_wk
Mat_SU_N m_wk
Definition: staple_SF.h:48
staple_SF.h
Staple_SF::lower
void lower(Field_G &, const Field_G &, const int, const int)
Definition: staple_SF.cpp:912
Bridge::BridgeIO::set_verbose_level
static VerboseLevel set_verbose_level(const std::string &str)
Definition: bridgeIO.cpp:133
Staple_SF::class_name
static const std::string class_name
Definition: staple_SF.h:39
mult_Field_Gnn
void mult_Field_Gnn(Field_G &W, const int ex, const Field_G &U1, const int ex1, const Field_G &U2, const int ex2)
Definition: field_G_imp.cpp:95
ShiftField_lex::backward
void backward(Field &, const Field &, const int mu)
Definition: shiftField_lex.cpp:59
Staple_SF::m_vl
Bridge::VerboseLevel m_vl
Definition: staple_SF.h:42
Communicator::ipe
static int ipe(const int dir)
logical coordinate of current proc.
Definition: communicator.cpp:105
Staple_SF::print_plaquette
void print_plaquette(const Field_G &)
Definition: staple_SF.cpp:966
Parameters::fetch_string
int fetch_string(const string &key, string &value) const
Definition: parameters.cpp:378
CommonParameters::NPEt
static int NPEt()
Definition: commonParameters.h:100
SU_N::Mat_SU_N::dag
Mat_SU_N & dag()
Definition: mat_SU_N.h:329
Bridge::BridgeIO::crucial
void crucial(const char *format,...)
Definition: bridgeIO.cpp:180
SU_N::ReTr
double ReTr(const Mat_SU_N &m)
Definition: mat_SU_N.h:534
Field_G::mat
Mat_SU_N mat(const int site, const int mn=0) const
Definition: field_G.h:114
Field_G
SU(N) gauge field.
Definition: field_G.h:38
Staple_SF::plaq_t
double plaq_t(const Field_G &)
Definition: staple_SF.cpp:690
Parameters::fetch_double_vector
int fetch_double_vector(const string &key, vector< double > &value) const
Definition: parameters.cpp:410
Bridge::BridgeIO::general
void general(const char *format,...)
Definition: bridgeIO.cpp:200
Staple_SF::get_parameters
void get_parameters(Parameters &params) const
Definition: staple_SF.cpp:61
mult_Field_Gnd
void mult_Field_Gnd(Field_G &W, const int ex, const Field_G &U1, const int ex1, const Field_G &U2, const int ex2)
Definition: field_G_imp.cpp:173
Staple_SF::plaq_s
double plaq_s(const Field_G &)
Definition: staple_SF.cpp:652
Bridge::vout
BridgeIO vout
Definition: bridgeIO.cpp:512
Bridge::BridgeIO::get_verbose_level
static std::string get_verbose_level(const VerboseLevel vl)
Definition: bridgeIO.cpp:154