diff --git a/tests/debug/Test_general_coarse_hdcg.cc b/tests/debug/Test_general_coarse_hdcg.cc index 8186b561..9c6be62e 100644 --- a/tests/debug/Test_general_coarse_hdcg.cc +++ b/tests/debug/Test_general_coarse_hdcg.cc @@ -128,6 +128,10 @@ int main (int argc, char ** argv) typedef HermOpAdaptor HermFineMatrix; HermFineMatrix FineHermOp(HermOpEO); + LatticeFermionD src(FrbGrid); + src = ComplexD(1.0); + PowerMethod PM; PM(HermOpEO,src); + //////////////////////////////////////////////////////////// ///////////// Coarse basis and Little Dirac Operator /////// //////////////////////////////////////////////////////////// @@ -150,7 +154,7 @@ int main (int argc, char ** argv) std::cout << "**************************************"< MrhsHermMatrix; - Chebyshev IRLCheby(0.05,40.0,101); // 1 iter + Chebyshev IRLCheby(0.01,16.0,201); // 1 iter MrhsHermMatrix MrhsCoarseOp (mrhs); CoarseVector pm_src(CoarseMrhs); @@ -193,10 +197,10 @@ int main (int argc, char ** argv) PowerMethod cPM; cPM(MrhsCoarseOp,pm_src); - int Nk=nrhs; - int Nm=Nk*3; - // int Nk=36; - // int Nm=144; + // int Nk=16; + // int Nm=Nk*3; + int Nk=32; + int Nm=128; int Nstop=Nk; int Nconv_test_interval=1; @@ -210,7 +214,7 @@ int main (int argc, char ** argv) nrhs, Nk, Nm, - 1e-4,10); + 1e-4,100); int Nconv; std::vector eval(Nm); @@ -231,8 +235,6 @@ int main (int argc, char ** argv) std::cout << "**************************************"< MrhsGuesser; MrhsGuesser.ImportEigenBasis(evec,eval); @@ -252,9 +254,11 @@ int main (int argc, char ** argv) // Extra HDCG parameters ////////////////////////// int maxit=3000; - ConjugateGradient CG(2.0e-1,maxit,false); - RealD lo=2.0; - int ord = 9; + // ConjugateGradient CG(2.0e-1,maxit,false); + // ConjugateGradient CG(1.0e-2,maxit,false); + ConjugateGradient CG(5.0e-2,maxit,false); + RealD lo=0.2; + int ord = 7; DoNothingGuesser DoNothing; HPDSolver HPDSolveMrhs(MrhsCoarseOp,CG,DoNothing); @@ -300,6 +304,19 @@ int main (int argc, char ** argv) ConjugateGradient CGfine(1.0e-8,30000,false); CGfine(HermOpEO, src, result); } + { + std::cout << "**************************************"< HermOp(Ddwf); + ConjugateGradient CGfine(1.0e-8,30000,false); + CGfine(HermOp, src, result); + } #endif Grid_finalize(); return 0;