1 #ifndef ILU2PREC_S_CPREC_T_WILSON_LINOP_W_H
2 #define ILU2PREC_S_CPREC_T_WILSON_LINOP_W_H
4 #include "qdp_config.h"
28 class ILU2PrecSCprecTWilsonLinOp :
29 public ILU2PrecSCprecTWilsonLikeLinOp
33 typedef LatticeFermion
T;
34 typedef multi1d<LatticeColorMatrix>
P;
35 typedef multi1d<LatticeColorMatrix>
Q;
36 typedef PScalar<PColorMatrix<RComplex<REAL>, 3> > CMat;
37 typedef PSpinVector<PColorVector<RComplex<REAL>, 3>, 2> HVec_site;
39 ILU2PrecSCprecTWilsonLinOp() {}
43 ILU2PrecSCprecTWilsonLinOp(Handle< FermState<T,P,Q> > fs_,
45 const AnisoParam_t& aniso_)
46 {create(fs_,Mass_,aniso_);}
49 ~ILU2PrecSCprecTWilsonLinOp() {}
52 const FermBC<T,P,Q>& getFermBC()
const {
return fs->getBC();}
56 void create(Handle< FermState<T,P,Q> > fs_,
58 const AnisoParam_t& aniso_);
63 QDPIO::cout <<
"Foo" << std::endl;
64 T tmp1,
tmp2,
tmp3; moveToFastMemoryHint(tmp1); moveToFastMemoryHint(
tmp2);
86 QDPIO::cerr <<
"unknown sign" << std::endl;
89 getFermBC().modifyF(
chi);
99 chi[ rb3[cb3d] ] *= mhalf;
100 getFermBC().modifyF(
chi);
107 getFermBC().modifyF(
chi);
113 getFermBC().modifyF(
chi);
117 const multi3d< int >& getTsiteArray(
void)
const
122 const multi3d< CMat >& getPMatrixArray(
void)
const
127 const multi3d< CMat >& getPMatrixDaggerArray(
void)
const
132 const multi2d< CMat >& getQMatrixInvArray(
void)
const
137 const multi2d< CMat >& getQMatrixDaggerInvArray(
void)
const
139 return Q_mat_dag_inv;
142 const Real& getFactor()
const
147 const Real& getInvFactor()
const
152 const multi1d<LatticeColorMatrix>& getLinks(
void)
const {
156 inline bool schroedingerTP()
const {
161 inline int getTMax(
void)
const {
163 return Layout::lattSize()[
Nd-1];
171 Handle< FermState<T,P,Q> > fs;
172 multi1d<LatticeColorMatrix>
u;
174 multi3d< int > tsite;
176 multi3d< CMat > P_mat;
177 multi3d< CMat > P_mat_dag;
179 multi2d< CMat > Q_mat_inv;
180 multi2d< CMat > Q_mat_dag_inv;
Time-preconditioned Linear Operators.
Support for time preconditioning.
Include possibly optimized Wilson dslash.
multi1d< LatticeColorMatrix > P
multi1d< Hadron2PtContraction_t > operator()(const multi1d< LatticeColorMatrix > &u)
Asqtad Staggered-Dirac operator.
static multi1d< LatticeColorMatrix > u
LinOpSysSolverMGProtoClover::Q Q
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > const multi1d< Real > & Mass
LinOpSysSolverMGProtoClover::T T
multi1d< LatticeFermion > chi(Ncb)
FloatingPoint< double > Double