6 #ifndef __prec_clover_linop_w_h__
7 #define __prec_clover_linop_w_h__
30 multi1d<LatticeColorMatrix>, multi1d<LatticeColorMatrix> >
34 typedef LatticeFermion
T;
35 typedef multi1d<LatticeColorMatrix>
P;
36 typedef multi1d<LatticeColorMatrix>
Q;
50 QDPIO::cout <<
"CLOV_LINOP: Time spent in clov deriv (total) = " <<
clov_deriv_time << std::endl;
51 QDPIO::cout <<
"CLOV_LINOP: Time spent in clov apply/invapply (total) = " <<
clov_apply_time << std::endl;
88 const LatticeFermion&
chi,
const LatticeFermion&
psi,
93 const multi1d<LatticeFermion>&
chi,
const multi1d<LatticeFermion>&
psi,
101 const LatticeFermion&
chi,
const LatticeFermion&
psi,
106 const LatticeFermion&
chi,
const LatticeFermion&
psi,
111 const LatticeFermion&
chi,
const LatticeFermion&
psi,
115 const multi1d<LatticeFermion>&
chi,
const multi1d<LatticeFermion>&
psi,
119 unsigned long nFlops()
const;
Even-odd preconditioned Clover-Dirac operator.
void derivLogDetEvenEvenLinOp(multi1d< LatticeColorMatrix > &ds_u, enum PlusMinus isign) const
Apply the even-even block onto a source std::vector.
const FermBC< T, P, Q > & getFermBC() const
Return the fermion BC object for this linear operator.
unsigned long nFlops() const
Return flops performed by the operator()
~EvenOddPrecCloverLinOp()
Destructor is automatic.
void oddOddLinOp(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply the the odd-odd block onto a source std::vector.
multi1d< LatticeColorMatrix > Q
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.
EvenOddPrecCloverLinOp(Handle< FermState< T, P, Q > > fs, const CloverFermActParams ¶m_)
Full constructor.
void oddEvenLinOp(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply the the odd-even block onto a source std::vector.
void derivOddOddLinOpMP(multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
multi1d< LatticeColorMatrix > P
void create(Handle< FermState< T, P, Q > > fs, const CloverFermActParams ¶m_)
Creation routine.
CloverFermActParams param
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.
EvenOddPrecCloverLinOp()
Partial constructor.
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 operator()(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply even-odd preconditioned Clover fermion linear operator.
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.
Double logDetEvenEvenLinOp(void) const
Get the log det of the even even part.
void derivEvenEvenLinOpMP(multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
Apply the even-even 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 evenEvenInvLinOp(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply the inverse of the even-even block onto a source std::vector.
Even-odd preconditioned linear operator.
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.
Parameters for Clover fermion action.
Include possibly optimized Clover terms.
Include possibly optimized Wilson dslash.
Preconditioned Linear Operators where the Even Even part depends on the gauge field.
Fermion action boundary conditions.
Asqtad Staggered-Dirac operator.
multi1d< LatticeFermion > chi(Ncb)
FloatingPoint< double > Double
Support class for fermion actions and linear operators.
Params for clover ferm acts.