8 multi1d<LatticeColorMatrix> & ds_u,
10 const LatticeFermion&
psi)
15 const multi1d<LatticeColorMatrix>&
u =
state->getLinks();
28 Real prefactor=Real(0.5);
32 LatticeColorMatrix u_tmp;
36 f_tmp = Gamma(1<<
mu)*Y;
41 LatticeFermion foo = shift(f_tmp,
FORWARD,
mu);
42 u_tmp = traceSpin(outerProduct(foo,
psi));
45 f_tmp = Gamma(1<<
mu)*
psi;
51 u_tmp -= traceSpin(outerProduct(foo,Y));
54 ds_u[
mu] = prefactor*(
u[
mu]*u_tmp );
61 multi1d<LatticeColorMatrix> & ds_u,
62 const LatticeFermion& X) {
73 M.deriv(ds_u, X, Y,
MINUS);
76 multi1d<LatticeColorMatrix> F_tmp(
Nd);
77 M.deriv(F_tmp, Y, X,
PLUS);
82 ds_u[
mu] += F_tmp[
mu];
91 int main(
int argc,
char *argv[])
97 const int nrow_arr[] = {2, 2, 2, 2};
98 multi1d<int> nrow(
Nd);
100 Layout::setLattSize(nrow);
104 multi1d<LatticeColorMatrix>
u(
Nd);
107 XMLReader config_xml;
113 XMLFileWriter xml_out(
"./XMLDAT");
114 push(xml_out,
"t_hamsys_ferm");
116 multi1d<LatticeColorMatrix>
p(
Nd);
117 multi1d<LatticeFermion>
phi(1);
122 Real betaMC = Real(5.7);
125 multi1d<int> boundary(
Nd);
140 multi1d<LatticeColorMatrix> dsdu_1(
Nd);
141 multi1d<LatticeColorMatrix> dsdu_2(
Nd);
164 push(xml_out,
"dsdu");
165 write(xml_out,
"dsdu_1", dsdu_1[
mu]);
166 write(xml_out,
"dsdu_2", dsdu_2[
mu]);
169 LatticeColorMatrix dsdu_diff=dsdu_1[
mu] - dsdu_2[
mu];
171 Double sum_diff=norm2(dsdu_diff);
172 QDPIO::cout <<
"Mu = " <<
mu <<
" Sum Diff=" << sum_diff << std::endl;
174 push(xml_out,
"ForceDiff");
176 write(xml_out,
"dsdu_diff", dsdu_diff);
Primary include file for CHROMA in application codes.
virtual FermState< T, P, Q > * createState(const Q &q) const
Given links (coordinates Q) create the state needed for the linear operators.
Class for counted reference semantics.
Concrete class for all gauge actions with simple boundary conditions.
Unpreconditioned linear operator including derivatives.
Unpreconditioned Wilson fermion action.
UnprecLinearOperator< T, P, Q > * linOp(Handle< FermState< T, P, Q > > state) const
Produce a linear operator for this action.
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams ¶m)
Writer parameters.
void taproj(LatticeColorMatrix &a)
Take the traceless antihermitian projection of a color matrix.
void gaugeStartup(XMLReader &gauge_file_xml, XMLReader &gauge_xml, multi1d< LatticeColorMatrix > &u, Cfg_t &cfg)
Initialize the gauge fields.
Asqtad Staggered-Dirac operator.
static multi1d< LatticeColorMatrix > u
push(xml_out,"Condensates")
void initialize(int *argc, char ***argv)
Chroma initialisation routine.
void finalize(void)
Chroma finalization routine.
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
FloatingPoint< double > Double
Gauge configuration structure.
int main(int argc, char *argv[])
void funky_new_dsdu(const UnprecLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix > > &M, multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &X)
void wilson_dsdu(const UnprecWilsonFermAct &S, multi1d< LatticeColorMatrix > &ds_u, Handle< const ConnectState > state, const LatticeFermion &psi)