1 #ifndef ILUPREC_S_CPREC_T_WILSON_LINOP_W_H
2 #define ILUPREC_S_CPREC_T_WILSON_LINOP_W_H
4 #include "qdp_config.h"
28 class ILUPrecSCprecTWilsonLinOp :
29 public ILUPrecSCprecTWilsonLikeLinOp
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 ILUPrecSCprecTWilsonLinOp() {}
43 ILUPrecSCprecTWilsonLinOp(Handle< FermState<T,P,Q> > fs_,
45 const AnisoParam_t& aniso_)
46 {create(fs_,Mass_,aniso_);}
49 ~ILUPrecSCprecTWilsonLinOp() {}
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_);
64 Real mhalf=Real(-0.5);
66 chi[ rb3[cb3d] ] *= mhalf;
67 getFermBC().modifyF(
chi);
71 void derivSpaceOp(
P& ds_u,
const T& X,
const T& Y,
enum PlusMinus isign,
int cb3d)
const
73 Real mhalf=Real(-0.5);
74 Dw3D.deriv(ds_u, X, Y,
isign, cb3d);
75 for(
int mu=0;
mu < 3;
mu++) {
79 getFermBC().zero(ds_u);
87 getFermBC().modifyF(
chi);
98 getFermBC().zero(ds_u);
102 Double logDetTDagT(
void)
const {
106 const multi3d< int >& getTsiteArray(
void)
const
111 const multi3d< CMat >& getPMatrixArray(
void)
const
116 const multi3d< CMat >& getPMatrixDaggerArray(
void)
const
121 const multi2d< CMat >& getQMatrixInvArray(
void)
const
126 const multi2d< CMat >& getQMatrixDaggerInvArray(
void)
const
128 return Q_mat_dag_inv;
131 const Real& getFactor()
const
136 const Real& getInvFactor()
const
141 const multi1d<LatticeColorMatrix>& getLinks(
void)
const {
145 inline bool schroedingerTP()
const {
150 inline int getTMax(
void)
const {
152 return Layout::lattSize()[
Nd-1];
160 Handle< FermState<T,P,Q> > fs;
161 multi1d<LatticeColorMatrix>
u;
163 multi3d< int > tsite;
165 multi3d< CMat > P_mat;
166 multi3d< CMat > P_mat_dag;
168 multi2d< CMat > Q_mat_inv;
169 multi2d< CMat > Q_mat_dag_inv;
Time-preconditioned Linear Operators.
Support for time preconditioning.
Include possibly optimized Wilson dslash.
multi1d< LatticeColorMatrix > P
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
multi1d< LatticeColorMatrix > P