8 using namespace QDP::Hints;
22 const Real& WilsonMass_,
23 const multi1d<Real>& b5_,
const multi1d<Real>& c5_,
24 const Real& m_q_,
int N5_)
26 WilsonMass = WilsonMass_;
34 Real ff =
Nd - WilsonMass;
35 for(
int s=0;
s <
N5; ++
s)
37 fb5[
s] = b5[
s]*ff + 1;
38 fc5[
s] = c5[
s]*ff - 1;
42 fbc =
state->getFermBC();
57 const multi1d<LatticeFermion>&
psi,
67 LatticeFermion
tmp,c_tmp,cmb ;
68 moveToFastMemoryHint(
tmp);
69 moveToFastMemoryHint(c_tmp);
70 moveToFastMemoryHint(cmb);
76 for(
int n=0;
n <
N5; ++
n)
81 c_tmp = chiralProjectMinus(
psi[1]) -m_q*chiralProjectPlus(
psi[
N5-1]);
85 c_tmp = chiralProjectPlus(
psi[
N5-2]) - m_q*chiralProjectMinus(
psi[0]) ;
89 c_tmp = chiralProjectPlus(
psi[
n-1]) + chiralProjectMinus(
psi[
n+1]);
91 cmb = b5[
n]*
psi[
n] + c5[
n]*c_tmp;
101 multi1d<LatticeFermion> Dpsi(
N5), c5Dpsi(
N5);
102 for(
int n=0;
n <
N5; ++
n)
106 Real cc5 = -0.5*c5[
n];
107 c5Dpsi[
n] = fc5[
n]*
psi[
n] + cc5*Dpsi[
n];
110 for(
int n=0;
n <
N5; ++
n)
113 c_tmp = chiralProjectPlus(c5Dpsi[1]) - m_q*chiralProjectMinus(c5Dpsi[
N5-1]);
116 c_tmp = chiralProjectMinus(c5Dpsi[
N5-2]) - m_q*chiralProjectPlus(c5Dpsi[0]);
118 c_tmp = chiralProjectMinus(c5Dpsi[
n-1]) + chiralProjectPlus(c5Dpsi[
n+1]);
120 Real bb5 = -0.5*b5[
n];
128 getFermBC().modifyF(
chi);
134 void UnprecNEFDWLinOpArray::Dminus(LatticeFermion&
chi,
135 const LatticeFermion&
psi,
143 chi = fc5[s5]*
psi + Real(-0.5*c5[s5])*tt;
151 const multi1d<LatticeFermion>&
chi,
const multi1d<LatticeFermion>&
psi,
161 multi1d<LatticeColorMatrix> ds_tmp(
Nd);
163 LatticeFermion
tmp,c_tmp,cmb;
169 for(
int n=0;
n <
N5; ++
n)
177 tmp = chiralProjectMinus(
psi[1]);
193 tmp = chiralProjectPlus(
psi[
n-1]);
198 tmp = chiralProjectMinus(
psi[0]);
209 tmp = chiralProjectPlus(
psi[
n-1]);
214 tmp = chiralProjectMinus(
psi[
n+1]);
225 for(
int n=0;
n <
N5; ++
n)
233 tmp = chiralProjectPlus(
chi[0]);
238 tmp = chiralProjectMinus(
chi[0]);
239 tmp *= -m_q*c5[
N5-1];
249 tmp = chiralProjectMinus(
chi[
n]);
254 tmp = chiralProjectPlus(
chi[
n]);
265 tmp = chiralProjectMinus(
chi[
n]);
270 tmp = chiralProjectPlus(
chi[
n]);
280 for(
int m=0;
m <
Nd; ++
m)
281 ds_u[
m] *= Real(-0.5);
283 getFermBC().zero(ds_u);
Primary include file for CHROMA library code.
Support class for fermion actions and linear operators.
Class for counted reference semantics.
multi1d< Hadron2PtContraction_t > operator()(const multi1d< LatticeColorMatrix > &u)
Asqtad Staggered-Dirac operator.
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
multi1d< LatticeColorMatrix > deriv(const EvenOddPrecLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > &AP, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign)
Apply the operator onto a source std::vector.
Unpreconditioned NEF domain-wall fermion linear operator.