diff --git a/tests/debug/Test_general_coarse_hdcg_phys48.cc b/tests/debug/Test_general_coarse_hdcg_phys48.cc index 7bcf028e..a5fc18e4 100644 --- a/tests/debug/Test_general_coarse_hdcg_phys48.cc +++ b/tests/debug/Test_general_coarse_hdcg_phys48.cc @@ -26,11 +26,6 @@ Author: Peter Boyle *************************************************************************************/ /* END LEGAL */ #include -#include -#include -//#include -#include -#include using namespace std; using namespace Grid; @@ -486,6 +481,8 @@ slurm-1482367.out:Grid : Message : 6169.469330 s : HDCG: Pcg converged in 487 it DeflatedGuesser DeflCoarseGuesser(evec,eval); + MultiRHSDeflation MrhsGuesser; + ////////////////////////////////////////// // Build a coarse space solver ////////////////////////////////////////// @@ -609,7 +606,7 @@ slurm-1482367.out:Grid : Message : 6169.469330 s : HDCG: Pcg converged in 487 it typedef HermitianLinearOperator MrhsHermMatrix; MrhsHermMatrix MrhsCoarseOp (mrhs); MemoryManager::Print(); -#if 0 +#if 1 { CoarseVector rh_res(CoarseMrhs); CoarseVector rh_guess(CoarseMrhs); @@ -617,19 +614,39 @@ slurm-1482367.out:Grid : Message : 6169.469330 s : HDCG: Pcg converged in 487 it rh_res= Zero(); rh_guess= Zero(); + + std::cout << "*************************"< BlasGuess(nrhs,Coarse5d); + std::vector BlasSource(nrhs,Coarse5d); for(int r=0;r los({2.0,2.5}); // Nbasis 40 == 36,36 iters // std::vector los({2.0}); - std::vector los({2.5}); + // std::vector los({2.5}); // std::vector ords({7,8,10}); // Nbasis 40 == 40,38,36 iters (320,342,396 mults) // std::vector ords({7}); // Nbasis 40 == 40 iters (320 mults) // std::vector ords({9}); // Nbasis 40 == 40 iters (320 mults) - std::vector ords({9}); + + // 148 outer + // std::vector los({1.0}); + // std::vector ords({24}); + + // 162 outer + // std::vector los({2.5}); + // std::vector ords({9}); + + // ??? outer + std::vector los({2.0}); + std::vector ords({7}); /* Smoother opt @56 nbasis, 0.04 convergence, 192 evs @@ -778,14 +806,16 @@ Conclusion: higher order smoother is doing better. Much better. Use a Krylov smo #if 1 MemoryManager::Print(); DoNothingGuesser DoNothing; - HPDSolver HPDSolveMrhs(MrhsCoarseOp,coarseCG,DoNothing); + HPDSolver HPDSolveMrhs(MrhsCoarseOp,CG,DoNothing); + HPDSolver HPDSolveMrhsSloppy(MrhsCoarseOp,CGsloppy,DoNothing); TwoLevelADEF2mrhs HDCGmrhs(1.0e-8, 500, FineHermOp, CGsmooth, - HPDSolveSloppy, // Never used - HPDSolve, // Used in Vstart - HPDSolveMrhs, // Used in M1 + // HPDSolveSloppy, // Never used + // HPDSolve, // Used in Vstart + HPDSolveMrhsSloppy, // Used in M1 + HPDSolveMrhs, // Used in Vstart DeflCoarseGuesser, // single RHS guess used in M1 CoarseMrhs, // Grid needed to Mrhs grid Aggregates);