11 namespace InvDDDeflatedEnv {
26 const LatticeFermion&
chi,
28 const mutli1d<LatticeFermion>& vecs,
39 int nvecs_per_block = vecs.size();
40 int nblocks = blk.getNumSubsets();
41 multi1d<Complex> chi_little(nblocks * nvecs_per_block);
43 for (
int v = 0 ; v < nvecs_per_block ; ++v) {
45 multi1d<Complex> temp = sumMulti( prod, blk);
46 for (
int b = 0 ;
b < nblocks ; ++
b) {
47 chi_little[cntr] = temp[
b];
53 multi1d<Complex> ainv_chi_little;
59 LatticeFermion pl_chi =
chi;
61 for (
int v = 0 ; v < nvecs_per_block ; ++v)
62 for (
int b = 0 ;
b < nblocks ; ++
b) {
63 LatticeFermion temp =
zero;
65 A(temp[blk[
b]], vecs[v], Plus);
66 pl_chi[blk[
b]] -= temp * ainv_chi_little[cntr];
74 LatticeFermion dpsi =
zero;
76 multi1d<Complex> dpsi_little(nblocks * nvecs_per_block);
78 for (
int v = 0 ; v < nvecs_per_block ; ++v) {
80 multi1d<Complex> temp = sumMulti( prod, blk);
81 for (
int b = 0 ;
b < nblocks ; ++
b) {
82 dpsi_little[cntr] = temp[
b];
88 for (
int v = 0 ; v < nvecs_per_block ; ++v)
89 for (
int b = 0 ;
b < nblocks ; ++
b) {
90 psi[blk[
b]] -= vecs[v] * dpsi_little[cntr];
96 for (
int v = 0 ; v < nvecs_per_block ; ++v)
97 for (
int b = 0 ;
b < nblocks ; ++
b)
99 psi[blk[
b]] += ainv_chi_little[cntr] * vecs[v];
Primary include file for CHROMA library code.
QDPSubTypeTrait< typename BinaryReturn< C1, C2, FnLocalInnerProduct >::Type_t >::Type_t localInnerProduct(const QDPSubType< T1, C1 > &l, const QDPType< T2, C2 > &r)
SystemSolverResults_t ddDeflInv(const LinearOperator< LatticeFermion > &A, const LatticeFermion &chi, LatticeFermion &psi, const mutli1d< LatticeFermion > &vecs, const QDP::Set blk, const Real &RsdCG, int MaxCG)
Asqtad Staggered-Dirac operator.
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > const multi1d< Real > enum InvType invType const multi1d< Real > & RsdCG
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > const multi1d< Real > enum InvType invType const multi1d< Real > int MaxCG
multi1d< LatticeFermion > chi(Ncb)
Holds return info from SystemSolver call.