6 #ifndef __clover_term_bagel_clover_w_h__
7 #define __clover_term_bagel_clover_w_h__
48 typedef LatticeFermion
T;
49 typedef multi1d<LatticeColorMatrix>
P;
50 typedef multi1d<LatticeColorMatrix>
Q;
102 void triacntr(LatticeColorMatrix& B,
int mat,
int cb)
const;
113 void makeClov(
const multi1d<LatticeColorMatrix>& f,
const Real& diag_mass);
122 const multi1d<LatticeColorMatrix>&
getU()
const {
return u;}
129 multi1d<LatticeColorMatrix>
u;
void makeClov(const multi1d< LatticeColorMatrix > &f, const Real &diag_mass)
Create the clover term on cb.
void ldagdlinv(LatticeReal &tr_log_diag, int cb)
Invert the clover term on cb using LDL^\dagger decomp.
~BAGELCloverTerm()
Free the internals.
Real getCloverCoeff(int mu, int nu) const
Calculates Tr_D ( Gamma_mat L )
void apply(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign, int cb) const
Handle< FermBC< T, P, Q > > fbc
const FermBC< T, P, Q > & getFermBC() const
Return the fermion BC object for this linear operator.
multi1d< LatticeColorMatrix > u
void create(Handle< FermState< T, P, Q > > fs, const CloverFermActParams ¶m_, const BAGELCloverTerm &from)
Create from another.
PrimitiveClovOffDiag * tri_off_diag
CloverFermActParams param
multi1d< bool > choles_done
PrimitiveClovDiag * tri_diag
void chlclovms(LatticeReal &log_diag, int cb)
Invert the clover term on cb using Cholesky decomp.
const multi1d< LatticeColorMatrix > & getU() const
Get the u field.
BAGELCloverTerm()
Empty constructor. Must use create later.
Double cholesDet(int cb) const
Computes the inverse of the term on cb using Cholesky.
void choles(int cb)
Computes the inverse of the term on cb using Cholesky.
multi1d< LatticeColorMatrix > P
multi1d< LatticeColorMatrix > Q
void applySite(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign, int site) const
Base class for all fermion action boundary conditions.
Support class for fermion actions and linear operators.
Class for counted reference semantics.
Parameters for Clover fermion action.
Clover term linear operator.
void read(XMLReader &xml, const std::string &path, AsqtadFermActParams ¶m)
Read parameters.
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams ¶m)
Writer parameters.
void triacntr(LatticeColorMatrix &B, int mat, int cb) const
Calculates Tr_D ( Gamma_mat L )
Asqtad Staggered-Dirac operator.
multi1d< LatticeFermion > chi(Ncb)
RScalar< REAL > PrimitiveClovDiag[2][8]
Special structure used for triangular objects.
RComplex< REAL > PrimitiveClovOffDiag[2][16]
FloatingPoint< double > Double
Support class for fermion actions and linear operators.
Params for clover ferm acts.
Special structure used for triangular objects.