11 const Real& c_plaq_munu,
12 const Real& c_rect_munu,
13 const bool noTemporal2Link,
14 multi1d<LatticeColorMatrix>& ds_u,
15 const multi1d<LatticeColorMatrix>&
u)
21 LatticeColorMatrix ds_plaq_mu;
22 LatticeColorMatrix ds_plaq_nu;
23 LatticeColorMatrix ds_rect_mu;
24 LatticeColorMatrix ds_rect_nu;
27 LatticeColorMatrix u_mu_xplusnu = shift(
u[
mu],
FORWARD,
nu);
28 LatticeColorMatrix u_nu_xplusmu = shift(
u[
nu],
FORWARD,
mu);
29 LatticeColorMatrix t_1, t_2, t_3;
38 t_1 = adj(u_mu_xplusnu)*adj(
u[
nu]);
45 t_3 = u_nu_xplusmu*adj(u_mu_xplusnu);
54 LatticeColorMatrix right_staple = adj(t_3)*adj(
u[
mu]);
62 LatticeColorMatrix up_staple = u_nu_xplusmu*t_1;
64 ds_plaq_mu = up_staple;
65 ds_plaq_nu = right_staple;
81 LatticeColorMatrix left_staple = shift(t_2,
BACKWARD,
mu);
83 ds_plaq_nu += left_staple;
91 LatticeColorMatrix l_left_corner = adj(
u[
mu])*
u[
nu];
99 t_2 = adj(u_nu_xplusmu)*l_left_corner;
103 Real
c = c_plaq_munu/Real(-2*Nc);
104 ds_u[
mu] +=
c*ds_plaq_mu;
106 ds_u[
nu] +=
c*ds_plaq_nu;
116 bool skip = (
mu == t_dir && noTemporal2Link );
127 t_1 = left_staple *
u[
mu];
136 t_2= adj(u_mu_xplusnu)*t_1;
162 LatticeColorMatrix shift_right_staple = shift(right_staple,
FORWARD,
mu);
171 t_2 = u_mu_xplusnu*shift_right_staple;
182 ds_rect_nu += t_2*adj(
u[
mu]);
198 ds_rect_mu = adj(t_2)*adj(
u[
nu]);
209 ds_rect_mu += t_3*left_staple;
219 t_2 = shift_right_staple*l_left_corner;
229 t_1 = adj(u_nu_xplusmu)*adj(
u[
mu]);
238 t_3 = t_1*adj(left_staple);
242 Real
c = c_rect_munu/Real(-2*Nc);
244 ds_u[
mu] +=
c * ds_rect_mu;
245 ds_u[
nu] +=
c * ds_rect_nu;
261 bool noTemporal2Link,
263 const multi1d<LatticeColorMatrix>&
u)
267 LatticeColorMatrix tmp1;
268 LatticeColorMatrix
tmp2;
270 LatticeColorMatrix rectangle_2munu;
271 LatticeColorMatrix rectangle_mu2nu;
273 LatticeColorMatrix u_nu_xplus_mu = shift(
u[
nu],
FORWARD,
mu);
274 LatticeColorMatrix u_mu_xplus_nu = shift(
u[
mu],
FORWARD,
nu);
281 LatticeColorMatrix lr_corner =
u[
mu]*u_nu_xplus_mu;
290 LatticeColorMatrix right_staple = lr_corner*adj(u_mu_xplus_nu);
300 tmp1 = right_staple*adj(
u[
nu]);
301 lgimp += c_plaq_munu*real(trace(tmp1));
307 bool skip = ( noTemporal2Link && (t_dir ==
mu) );
325 right_staple =
tmp2*adj(u_mu_xplus_nu);
330 rectangle_2munu = right_staple*adj(
u[
nu]);
333 lgimp += c_rect_munu * real(trace(rectangle_2munu));
void deriv_part(const int mu, const int nu, const int t_dir, const Real &c_plaq_munu, const Real &c_rect_munu, const bool noTemporal2Link, multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeColorMatrix > &u)
void S_part(int mu, int nu, int t_dir, Real c_plaq_munu, Real c_rect_munu, bool noTemporal2Link, LatticeReal &lgimp, const multi1d< LatticeColorMatrix > &u)
Asqtad Staggered-Dirac operator.
static multi1d< LatticeColorMatrix > u