6 #ifndef __prec_ovdwf_linop_array_w_h__
7 #define __prec_ovdwf_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 Real&
m_q,
int N5_)
38 const Real& WilsonMass_,
const Real& m_q_,
int N5_);
52 const multi1d<LatticeFermion>&
psi,
61 const multi1d<LatticeFermion>&
psi,
69 const multi1d<LatticeFermion>&
psi,
77 const multi1d<LatticeFermion>&
psi,
86 const multi1d<LatticeFermion>&
psi,
95 const multi1d<LatticeFermion>&
psi,
103 const LatticeFermion&
psi,
117 const multi1d<LatticeFermion>&
psi,
129 const multi1d<LatticeFermion>&
psi,
142 const multi1d<LatticeFermion>&
psi,
4D Even Odd preconditioned domain-wall Dirac operator
4D Even Odd preconditioned Overlap-DWF (Borici) linear operator
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.
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 Dminus(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign, int s5) const
Apply the Dminus operator on a lattice fermion. See my notes ;-)
EvenOddPrecOvDWLinOpArray(Handle< FermState< T, P, Q > > fs, const Real &WilsonMass_, const Real &m_q, int N5_)
Full constructor.
void operator=(const EvenOddPrecOvDWLinOpArray &)
Hide =.
const FermBC< T, P, Q > & getFermBC() const
Return the fermion BC object for this linear operator.
EvenOddPrecOvDWLinOpArray()
Partial constructor.
multi1d< LatticeColorMatrix > Q
void oddEvenLinOp(multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
Apply the the odd-even block onto a source std::vector.
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.
void evenOddLinOp(multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
Apply the the even-odd block onto a source std::vector.
multi1d< LatticeColorMatrix > P
~EvenOddPrecOvDWLinOpArray()
Destructor is automatic.
int size() const
Length of DW flavor index/space.
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.
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 &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 Borici 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 Borici 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 Borici fermion operator.
Asqtad Staggered-Dirac operator.
multi1d< LatticeFermion > chi(Ncb)