From f23e9e70cd1e7e550a63a8ae381677dbeeabf06d Mon Sep 17 00:00:00 2001 From: Peter Boyle Date: Tue, 11 Aug 2026 16:20:55 -0400 Subject: [PATCH] Global orthogonalise routine --- Grid/algorithms/multigrid/Aggregates.h | 28 ++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/Grid/algorithms/multigrid/Aggregates.h b/Grid/algorithms/multigrid/Aggregates.h index fc527929c..204b0aac9 100644 --- a/Grid/algorithms/multigrid/Aggregates.h +++ b/Grid/algorithms/multigrid/Aggregates.h @@ -66,7 +66,21 @@ public: { }; - + void GlobalOrthonormalise(void) + { + // Normalise all vectors + for(int i=0;i "< "< "< GCR(0.001,10,DiracOp,simple_fine,30,30); // PrecGeneralisedConjugateResidualNonHermitian GCR(0.001,10,DiracOp,simple_fine,12,12); // PrecGeneralisedConjugateResidualNonHermitian GCR(0.001,30,DiracOp,simple_fine,12,12); - PrecGeneralisedConjugateResidualNonHermitian GCR(0.001,30,DiracOp,simple_fine,10,10); + // PrecGeneralisedConjugateResidualNonHermitian GCR(0.0005,30,DiracOp,simple_fine,20,20); + PrecGeneralisedConjugateResidualNonHermitian GCR(0.0005,30,DiracOp,simple_fine,10,10); FineField noise(FineGrid); FineField src(FineGrid); FineField guess(FineGrid); @@ -167,6 +184,8 @@ public: noise = subspace[b]; scale = std::pow(norm2(noise),-0.5); noise=noise*scale; + + DiracOp.Op(noise,Mn); std::cout< "<"<