6 #ifndef __prec_nef_linop_array_w_h__
7 #define __prec_nef_linop_array_w_h__
23 multi1d<LatticeColorMatrix>, multi1d<LatticeColorMatrix> >
27 typedef LatticeFermion
T;
28 typedef multi1d<LatticeColorMatrix>
P;
29 typedef multi1d<LatticeColorMatrix>
Q;
33 const Real& WilsonMass_,
const multi1d<Real>& b5_,
34 const multi1d<Real>& c5_,
const Real&
m_q,
int N5_)
45 const Real& WilsonMass_,
const Real &b5_,
46 const Real &c5_,
const Real&
m_q,
int N5_)
51 const Real& WilsonMass_,
const Real &b5_,
52 const Real &c5_,
const Real& m_q_,
int N5_);
69 const multi1d<LatticeFermion>&
psi,
78 const multi1d<LatticeFermion>&
psi,
86 const multi1d<LatticeFermion>&
psi,
94 const multi1d<LatticeFermion>&
psi,
103 const multi1d<LatticeFermion>&
psi,
112 const multi1d<LatticeFermion>&
psi,
120 const LatticeFermion&
psi,
134 const multi1d<LatticeFermion>&
psi,
146 const multi1d<LatticeFermion>&
psi,
162 const multi1d<LatticeFermion>&
psi,
164 const int cb)
const ;
4D Even Odd preconditioned domain-wall Dirac operator
4D Even Odd preconditioned NEF domain-wall Dirac operator
const FermBC< T, P, Q > & getFermBC() const
Return the fermion BC object for this linear operator.
void operator=(const EvenOddPrecNEFDWLinOpArray &)
Partial constructor.
void oddOddInvLinOp(multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
Apply the inverse of the odd-odd block onto a source std::vector.
EvenOddPrecNEFDWLinOpArray()
Partial constructor.
void oddOddLinOp(multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
Apply the the odd-odd block onto a source std::vector.
void evenEvenLinOp(multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
Apply the even-even block onto a source std::vector.
void evenEvenInvLinOp(multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
Apply the inverse of the even-even block onto a source std::vector.
multi1d< LatticeColorMatrix > Q
int size() const
Length of DW flavor index/space.
EvenOddPrecNEFDWLinOpArray(Handle< FermState< T, P, Q > > fs, const Real &WilsonMass_, const Real &b5_, const Real &c5_, const Real &m_q, int N5_)
multi1d< LatticeColorMatrix > P
void Dminus(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign, int s5) const
Apply the Dminus operator on a lattice fermion. See my notes ;-)
void oddEvenLinOp(multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
Apply the the odd-even block onto a source std::vector.
EvenOddPrecNEFDWLinOpArray(Handle< FermState< T, P, Q > > fs, const Real &WilsonMass_, const multi1d< Real > &b5_, const multi1d< Real > &c5_, const Real &m_q, int N5_)
void evenOddLinOp(multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
Apply the the even-odd block onto a source std::vector.
~EvenOddPrecNEFDWLinOpArray()
set b5 and c5 given kappa and a5
Base class for all fermion action boundary conditions.
Support class for fermion actions and linear operators.
Class for counted reference semantics.
General Wilson-Dirac dslash of arrays.
const FermBC< T, P, Q > & getFermBC() const
Return the fermion BC object for this linear operator.
Include possibly optimized Wilson dslash.
Base class for even-odd preconditioned domain-wall-like linops.
void create(Handle< FermState< T, P, Q > > fs, const Real &WilsonMass_, const Real &b5_, const Real &c5_, const Real &m_q_, int N5_)
Creation routine.
void applyOffDiag(multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign, const int cb) const
Apply the even-odd (odd-even) coupling piece of the NEF operator.
void applyDiag(multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign, const int cb) const
Apply the even-even (odd-odd) coupling piece of the domain-wall fermion operator.
void applyDiagInv(multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign, const int cb) const
Apply the inverse even-even (odd-odd) coupling piece of the domain-wall fermion operator.
Asqtad Staggered-Dirac operator.
QDP_error_exit("too many BiCG iterations", n_count, rsd_sq, cp, c, re_rvr, im_rvr, re_a, im_a, re_b, im_b)
multi1d< LatticeFermion > chi(Ncb)