43 QDPWilsonDslash3D::QDPWilsonDslash3D() {}
46 QDPWilsonDslash3D::QDPWilsonDslash3D(Handle< FermState<T,P,Q> >
state)
53 QDPWilsonDslash3D::QDPWilsonDslash3D(Handle< FermState<T,P,Q> >
state,
54 const AnisoParam_t& aniso_)
56 create(
state, aniso_);
60 void QDPWilsonDslash3D::create(Handle< FermState<T,P,Q> >
state)
68 void QDPWilsonDslash3D::create(Handle< FermState<T,P,Q> >
state,
69 const AnisoParam_t& anisoParam)
79 void QDPWilsonDslash3D::create(Handle< FermState<T,P,Q> >
state,
80 const multi1d<Real>& coeffs_)
83 fbc =
state->getFermBC();
87 if (fbc.operator->() == 0)
89 QDPIO::cerr <<
"WilsonDslash3D: error: fbc is null" << std::endl;
94 for(
int mu=0;
mu <
u.size(); ++
mu)
113 QDPWilsonDslash3D::apply (LatticeFermion&
chi,
const LatticeFermion&
psi,
119 int otherCB = (
cb == 0 ? 1 : 0);
127 LatticeHalfFermion
tmp;
128 LatticeHalfFermion
tmp2;
130 tmp[rb3[otherCB]] = spinProjectDir0Minus(
psi);
132 chi[rb3[
cb]] = spinReconstructDir0Minus(
u[0]*
tmp2);
135 tmp[rb3[otherCB]] = spinProjectDir1Minus(
psi);
137 chi[rb3[
cb]] += spinReconstructDir1Minus(
u[1]*
tmp2);
139 tmp[rb3[otherCB]] = spinProjectDir2Minus(
psi);
141 chi[rb3[
cb]] += spinReconstructDir2Minus(
u[2]*
tmp2);
145 tmp[rb3[otherCB]] = adj(
u[0])*spinProjectDir0Plus(
psi);
147 chi[rb3[
cb]] += spinReconstructDir0Plus(
tmp2);
149 tmp[rb3[otherCB]] = adj(
u[1])*spinProjectDir1Plus(
psi);
151 chi[rb3[
cb]] += spinReconstructDir1Plus(
tmp2);
153 tmp[rb3[otherCB]] = adj(
u[2])*spinProjectDir2Plus(
psi);
155 chi[rb3[
cb]] += spinReconstructDir2Plus(
tmp2);
167 LatticeHalfFermion
tmp;
168 LatticeHalfFermion
tmp2;
170 tmp[rb3[otherCB]] = spinProjectDir0Plus(
psi);
172 chi[rb3[
cb]] = spinReconstructDir0Plus(
u[0]*
tmp2);
174 tmp[rb3[otherCB]] = spinProjectDir1Plus(
psi);
176 chi[rb3[
cb]] += spinReconstructDir1Plus(
u[1]*
tmp2);
178 tmp[rb3[otherCB]] = spinProjectDir2Plus(
psi);
180 chi[rb3[
cb]] += spinReconstructDir2Plus(
u[2]*
tmp2);
183 tmp[rb3[otherCB]] = adj(
u[0])*spinProjectDir0Minus(
psi);
185 chi[rb3[
cb]] += spinReconstructDir0Minus(
tmp2);
187 tmp[rb3[otherCB]] = adj(
u[1])*spinProjectDir1Minus(
psi);
189 chi[rb3[
cb]] += spinReconstructDir1Minus(
tmp2);
191 tmp[rb3[otherCB]] = adj(
u[2])*spinProjectDir2Minus(
psi);
193 chi[rb3[
cb]] += spinReconstructDir2Minus(
tmp2);
Primary include file for CHROMA library code.
Wilson Dslash linear operator.
Asqtad Staggered-Dirac operator.
static multi1d< LatticeColorMatrix > u
multi1d< LatticeFermion > chi(Ncb)
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
multi1d< Real > makeFermCoeffs(const AnisoParam_t &aniso)
Make fermion coefficients.