16 static Real
xi_0() {
return 1.0;}
38 const multi1d<LatticeColorMatrix>&
u,
43 multi1d<LatticeReal>
r(4);
44 multi1d<LatticeReal>
a(4);
49 multi1d<LatticeColorMatrix> ug(
Nd);
55 multi1d<LatticeColorMatrix> u_neg(
Nd);
67 v[rb[
cb]] *= pow(
xi_0(), 2);
73 v[rb[
cb]] += ug[
mu] + adj(u_neg[
mu]);
88 r_l[rb[
cb]] = sqrt(
r[0]*
r[0] +
r[1]*
r[1] +
r[2]*
r[2] +
r[3]*
r[3]);
92 lbtmp[rb[
cb]] = r_l > fuzz;
94 lftmp[rb[
cb]] = 1.0 / where(lbtmp, r_l, LatticeReal(1));
98 multi1d<LatticeReal>
a(4);
99 a[0][rb[
cb]] = where(lbtmp,
r[0] * lftmp, LatticeReal(1));
100 a[1][rb[
cb]] = where(lbtmp, -(
r[1] * lftmp), LatticeReal(0));
101 a[2][rb[
cb]] = where(lbtmp, -(
r[2] * lftmp), LatticeReal(0));
102 a[3][rb[
cb]] = where(lbtmp, -(
r[3] * lftmp), LatticeReal(0));
108 LatticeReal theta_old;
109 theta_old[rb[
cb]] = acos(
a[0]);
113 oldsin[rb[
cb]] = sin(theta_old);
116 LatticeReal theta_new;
117 theta_new[rb[
cb]] = theta_old * orpara;
121 lftmp[rb[
cb]] = where(oldsin > fuzz, sin(theta_new) / oldsin, LatticeReal(0));
124 a[0][rb[
cb]] = cos(theta_new);
127 a[1][rb[
cb]] *= lftmp;
128 a[2][rb[
cb]] *= lftmp;
129 a[3][rb[
cb]] *= lftmp;
140 r[0][rb[
cb]] = real(peekColor(v, 0, 0));
141 r[1][rb[
cb]] = imag(peekColor(v, 0, 0));
143 r_l[rb[
cb]] = sqrt(
r[0] *
r[0] +
r[1] *
r[1]);
146 LatticeBoolean lbtmp;
147 lbtmp[rb[
cb]] = r_l > fuzz;
149 lftmp[rb[
cb]] = 1.0 / where(lbtmp, r_l, LatticeReal(1));
153 multi1d<LatticeReal>
a(4);
154 a[0][rb[
cb]] = where(lbtmp,
r[0] * lftmp, LatticeReal(1));
155 a[1][rb[
cb]] = where(lbtmp, -(
r[1] * lftmp), LatticeReal(0));
160 Real pi = 0.5 *
twopi;
164 theta[rb[
cb]] = acos(
a[0]) + pi;
167 theta[rb[
cb]] *= orpara;
170 a[0][rb[
cb]] = cos(theta);
173 a[1][rb[
cb]] = sin(theta);
176 pokeColor(v, cmplx(
a[0],
a[1]), 0, 0);
182 LatticeColorMatrix u_tmp;
183 u_tmp[rb[
cb]] = v * g;
Primary include file for CHROMA library code.
void sunFill(LatticeColorMatrix &dest, const multi1d< LatticeReal > &r, int su2_index, const Subset &s)
Fill a dest(su2_index) <- r_0,r_1,r_2,r_3 under a subset.
void su2Extract(multi1d< LatticeReal > &r, const LatticeColorMatrix &source, int su2_index, const Subset &s)
Su2_extract: r_0,r_1,r_2,r_3 <- source(su2_index) [SU(N) field] under a subset.
void grelax(LatticeColorMatrix &g, const multi1d< LatticeColorMatrix > &u, int j_decay, int su2_index, int cb, bool ordo, const Real &orpara)
Perform a single gauge fixing iteration.
Asqtad Staggered-Dirac operator.
static multi1d< LatticeColorMatrix > u
Fill an SU(Nc) matrix with an SU(2) submatrix.