6 #ifndef __eoprec_twm_linop_array_w_h__
7 #define __eoprec_twm_linop_array_w_h__
26 multi1d<LatticeColorMatrix>, multi1d<LatticeColorMatrix> >
30 typedef LatticeFermion
T;
31 typedef multi1d<LatticeColorMatrix>
P;
32 typedef multi1d<LatticeColorMatrix>
Q;
39 const Real& Mass_,
const Real& mu_sigma_,
const Real& mu_delta_)
40 {
create(fs,Mass_,mu_sigma_,mu_delta_);}
50 const Real& Mass_,
const Real& mu_delta_,
const Real& mu_sigma_);
79 const LatticeFermion&
chi,
const LatticeFermion&
psi,
88 const LatticeFermion&
chi,
const LatticeFermion&
psi,
93 const LatticeFermion&
chi,
const LatticeFermion&
psi,
99 const LatticeFermion&
chi,
const LatticeFermion&
psi,
Even-odd preconditioned linear operator.
Even-odd preconditioned Twisted-mass linop where each flavor is one of two array elements.
unsigned long nFlops() const
Return flops performed by the operator()
void create(Handle< FermState< T, P, Q > > fs, const Real &Mass_, const Real &mu_delta_, const Real &mu_sigma_)
Creation routine.
multi1d< LatticeColorMatrix > P
EvenOddPrecTwmLinOpArray(Handle< FermState< T, P, Q > > fs, const Real &Mass_, const Real &mu_sigma_, const Real &mu_delta_)
Full constructor.
void derivOddOddLinOp(multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply the the odd-odd block onto a source std::vector.
void oddEvenLinOp(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply the the odd-even block onto a source std::vector.
void derivEvenOddLinOp(multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply the the even-odd block onto a source std::vector.
~EvenOddPrecTwmLinOpArray()
Destructor is automatic.
EvenOddPrecTwmLinOpArray()
Partial constructor.
const FermBC< T, P, Q > & getFermBC() const
Return the fermion BC object for this linear operator.
void oddOddLinOp(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply the the odd-odd block onto a source std::vector.
void derivEvenEvenLinOp(multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply the even-even block onto a source std::vector.
void operator()(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Override inherited one with a few more funkies.
void evenEvenInvLinOp(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply the inverse of the even-even block onto a source std::vector.
multi1d< LatticeColorMatrix > Q
void evenEvenLinOp(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply the the even-even block onto a source std::vector.
void evenOddLinOp(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply the the even-odd block onto a source std::vector.
void derivOddEvenLinOp(multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply the the odd-even block onto a source std::vector.
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.
Preconditioned 4D Linop with Gauge Independent Even-Even part.
Asqtad Staggered-Dirac operator.
multi1d< LatticeFermion > chi(Ncb)