1
0
mirror of https://github.com/paboyle/Grid.git synced 2025-06-14 13:57:07 +01:00

Rework the linop support to get different forms of red black schur solver

Moo on diag, or MooInv Moe MeeInv Meo
This commit is contained in:
Peter Boyle
2015-06-05 10:17:10 +01:00
parent 58a4f32298
commit 7f6304fac3
16 changed files with 155 additions and 126 deletions

View File

@ -36,32 +36,6 @@ namespace Grid {
virtual void MooeeDag (const Field &in, Field &out)=0;
virtual void MooeeInvDag (const Field &in, Field &out)=0;
// Schur decomp operators
virtual RealD Mpc (const Field &in, Field &out) {
Field tmp(in._grid);
Meooe(in,tmp);
MooeeInv(tmp,out);
Meooe(out,tmp);
Mooee(in,out);
return axpy_norm(out,-1.0,tmp,out);
}
virtual RealD MpcDag (const Field &in, Field &out){
Field tmp(in._grid);
MeooeDag(in,tmp);
MooeeInvDag(tmp,out);
MeooeDag(out,tmp);
MooeeDag(in,out);
return axpy_norm(out,-1.0,tmp,out);
}
virtual void MpcDagMpc(const Field &in, Field &out,RealD &ni,RealD &no) {
Field tmp(in._grid);
ni=Mpc(in,tmp);
no=MpcDag(tmp,out);
}
};
}