17 UnprecPPDWF4DLinOp<LatticeFermion,
18 multi1d<LatticeColorMatrix>,
19 multi1d<LatticeColorMatrix> >::operator()(LatticeFermion&
chi,
20 const LatticeFermion&
psi,
25 const int N5 = size();
29 multi1d<LatticeFermion> psi5(
N5);
35 multi1d<LatticeFermion> tmp5(
N5);
38 multi1d<LatticeFermion> chi5(
N5);
45 D->unprecLinOp(chi5, tmp5,
PLUS);
52 multi1d<LatticeFermion> chi_tmp(
N5);
54 multi1d<LatticeFermion> tmp1(
N5);
55 multi1d<LatticeFermion>
tmp2(
N5);
57 PV->evenEvenInvLinOp(tmp1, chi5,
PLUS);
59 for(
int n=0;
n <
N5; ++
n)
60 chi_tmp[
n][rb[1]] = chi5[
n] -
tmp2[
n];
66 (*PV)(tmp5, chi_tmp,
MINUS);
69 res =
InvCG2 (*PV, tmp5, psi5, invParam.RsdCG, invParam.MaxCG);
75 multi1d<LatticeFermion> tmp1(
N5);
76 multi1d<LatticeFermion>
tmp2(
N5);
78 PV->evenOddLinOp(tmp1, psi5,
PLUS);
79 for(
int n=0;
n <
N5; ++
n)
80 tmp2[
n][rb[0]] = chi5[
n] - tmp1[
n];
81 PV->evenEvenInvLinOp(psi5,
tmp2,
PLUS);
93 multi1d<LatticeFermion> chi_tmp(
N5);
95 multi1d<LatticeFermion> tmp1(
N5);
96 multi1d<LatticeFermion>
tmp2(
N5);
98 PV->evenEvenInvLinOp(tmp1, chi5,
MINUS);
100 for(
int n=0;
n <
N5; ++
n)
101 chi_tmp[
n][rb[1]] = chi5[
n] -
tmp2[
n];
106 multi1d<LatticeFermion> tmp1(
N5);
107 for(
int n=0;
n <
N5; ++
n)
108 tmp1[
n][rb[1]] =
zero;
111 res =
InvCG2(*PV, chi_tmp, tmp1, invParam.RsdCG, invParam.MaxCG);
114 (*PV)(tmp5, tmp1,
PLUS);
120 multi1d<LatticeFermion> tmp1(
N5);
121 multi1d<LatticeFermion>
tmp2(
N5);
123 PV->evenOddLinOp(tmp1, tmp5,
MINUS);
124 for(
int n=0;
n <
N5; ++
n)
125 tmp2[
n][rb[0]] = chi5[
n] - tmp1[
n];
130 D->unprecLinOp(psi5, tmp5,
MINUS);
135 if ( res.
n_count == invParam.MaxCG )
Primary include file for CHROMA library code.
DWF parity/rotation operator.
SystemSolverResults_t InvCG2(const LinearOperator< LatticeFermionF > &M, const LatticeFermionF &chi, LatticeFermionF &psi, const Real &RsdCG, int MaxCG)
Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.
void DwfFld(multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign)
DWF parity/rotation operator.
Conjugate-Gradient algorithm for a generic Linear Operator.
Asqtad Staggered-Dirac operator.
QDP_error_exit("too many BiCG iterations", n_count, rsd_sq, cp, c, re_rvr, im_rvr, re_a, im_a, re_b, im_b)
multi1d< LatticeFermion > chi(Ncb)
Holds return info from SystemSolver call.
Unpreconditioned projected DWF operator to 4D using prec 5D bits.