49 Real & gspace, Real & gtime,
53 multi1d<LatticeColorMatrix> field_st(10) ;
54 LatticeColorMatrix
tmp ;
73 tmp = field_st[offset] * field_st[offset] ;
74 tr = real(
sum(trace(
tmp))) ;
92 gspace /= -2.0*Layout::vol() ;
93 gtime /= -2.0*Layout::vol() ;
101 multi1d<LatticeColorMatrix> dest(
Nd);
102 multi1d<LatticeColorMatrix> next(
Nd);
107 multi2d<Real> rho_a(4,4) ;
108 multi2d<Real> rho_b1(4,4) ;
109 multi2d<Real> rho_b2(4,4) ;
110 multi2d<Real> rho_c(4,4) ;
114 for (dir = 0; dir <=
Nd-1; dir++)
116 rho_a[
mu][dir] = rho * 0.25 ;
118 rho_b1[
mu][dir] = rho * 8.0/9.0 ;
119 rho_b2[
mu][dir] = rho * 17.0/36.0 ;
121 rho_c[
mu][dir] = rho * 3.0/4.0 ;
129 LatticeColorMatrix
Q, QQ,
C ;
130 LatticeColorMatrix Q2, QQ2 ;
132 multi1d<LatticeColorMatrix> Q0(
Nd);
133 multi1d<LatticeColorMatrix> Q1(
Nd);
136 multi1d<LatticeComplex> f;
144 Q = Q1[
mu] - Q0[
mu] ;
149 next[
mu]=(f[0] + f[1]*
Q + f[2]*QQ)*dest[
mu];
156 dest[
mu] = next[
mu] ;
164 Q = Q2 - Q1[
mu] + Q0[
mu] ;
169 next[
mu]=(f[0] + f[1]*
Q + f[2]*QQ)*dest[
mu];
185 multi1d<LatticeColorMatrix> &
u,
int nstep,
186 Real wflow_eps,
int t_dir,
const multi1d<bool>& smear_dirs)
189 int dim = nstep + 1 ;
190 multi1d<Real> gact4i_vec(dim);
191 multi1d<Real> gactij_vec(dim);
192 multi1d<Real> step_vec(dim);
197 gact4i_vec[0] = gact4i ;
198 gactij_vec[0] = gactij ;
203 QDPIO::cout <<
"START_ANALYZE_wflow" << std::endl ;
204 QDPIO::cout <<
"WFLOW time gact4i gactij" << std::endl ;
206 for(
int i=0 ;
i < nstep ; ++
i)
211 gact4i_vec[
i+1] = gact4i ;
212 gactij_vec[
i+1] = gactij ;
215 Real xx = (
i + 1) * wflow_eps ;
216 QDPIO::cout <<
"WFLOW " << xx <<
" " << gact4i <<
" " << gactij << std::endl ;
221 QDPIO::cout <<
"END_ANALYZE_wflow" << std::endl ;
223 push(xml,
"wilson_flow_results");
224 write(xml,
"wflow_step",step_vec) ;
225 write(xml,
"wflow_gact4i",gact4i_vec) ;
226 write(xml,
"wflow_gactij",gactij_vec) ;
Exponentiate a SU(n) lie algebra element by some method,.
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams ¶m)
Writer parameters.
void getFs(const LatticeColorMatrix &Q, const LatticeColorMatrix &QQ, multi1d< LatticeComplex > &f)
Given c0 and c1 compute the f-s and b-s.
void smear_links(const multi1d< LatticeColorMatrix > ¤t, multi1d< LatticeColorMatrix > &next, const multi1d< bool > &smear_in_this_dirP, const multi2d< Real > &rho)
Do the smearing from level i to level i+1.
void getQsandCs(const multi1d< LatticeColorMatrix > &u, LatticeColorMatrix &Q, LatticeColorMatrix &QQ, LatticeColorMatrix &C, int mu, const multi1d< bool > &smear_in_this_dirP, const multi2d< Real > &rho)
Given field U, construct the staples into C, form Q and Q^2 and compute c0 and c1.
void wilson_flow(XMLWriter &xml, multi1d< LatticeColorMatrix > &u, int nstep, Real wflow_eps, int t_dir, const multi1d< bool > &smear_dirs)
Compute the Wilson flow.
Calculates the antihermitian field strength tensor iF(mu,nu)
SpinMatrix C()
C = Gamma(10)
Asqtad Staggered-Dirac operator.
static multi1d< LatticeColorMatrix > u
LinOpSysSolverMGProtoClover::Q Q
push(xml_out,"Condensates")
void measure_wilson_gauge(multi1d< LatticeColorMatrix > &u, Real &gspace, Real >ime, int t_dir)
void mesField(multi1d< LatticeColorMatrixF > &f, const multi1d< LatticeColorMatrixF > &u)
Calculates the antihermitian field strength tensor iF(mu,nu)
void wilson_flow_one_step(multi1d< LatticeColorMatrix > &u, Real rho, const multi1d< bool > &smear_in_this_dirP)
FloatingPoint< double > Double
Take the traceless antihermitian projection of a color matrix.