diff --git a/tests/debug/Test_general_coarse_pvdagm.cc b/tests/debug/Test_general_coarse_pvdagm.cc index 7c3db4ea..d34a067b 100644 --- a/tests/debug/Test_general_coarse_pvdagm.cc +++ b/tests/debug/Test_general_coarse_pvdagm.cc @@ -368,7 +368,7 @@ int main (int argc, char ** argv) TrivialPrecon simple; NonHermitianLinearOperator LinOpCoarse(LittleDiracOpPV); // PrecGeneralisedConjugateResidualNonHermitian L2PGCR(1.0e-4, 100, LinOpCoarse,simple,10,10); - PrecGeneralisedConjugateResidualNonHermitian L2PGCR(3.0e-2, 100, LinOpCoarse,simple,10,10); + PrecGeneralisedConjugateResidualNonHermitian L2PGCR(1.0e-2, 200, LinOpCoarse,simple,30,30); L2PGCR.Level(3); c_res=Zero(); L2PGCR(c_src,c_res); @@ -400,7 +400,7 @@ int main (int argc, char ** argv) LinOpCoarse, L2PGCR); - PrecGeneralisedConjugateResidualNonHermitian L1PGCR(1.0e-8,1000,PVdagM,TwoLevelPrecon,16,16); + PrecGeneralisedConjugateResidualNonHermitian L1PGCR(1.0e-8,1000,PVdagM,TwoLevelPrecon,30,30); L1PGCR.Level(1); f_res=Zero(); diff --git a/tests/debug/Test_general_coarse_pvdagm_svd.cc b/tests/debug/Test_general_coarse_pvdagm_svd.cc index f2bbcf64..85589ebd 100644 --- a/tests/debug/Test_general_coarse_pvdagm_svd.cc +++ b/tests/debug/Test_general_coarse_pvdagm_svd.cc @@ -337,8 +337,8 @@ int main (int argc, char ** argv) 500); // Breeds left singular vectors with call to HermOp (U) - // U.CreateSubspaceChebyshev(RNG5,MdagPV, - U.CreateSubspaceChebyshev(RNG5,PVdagM, + // U.CreateSubspaceChebyshev(RNG5,PVdagM, + U.CreateSubspaceChebyshev(RNG5,MdagPV, nbasis, 4000.0,0.003, 500); diff --git a/tests/debug/Test_general_coarse_pvdagm_svd_uv.cc b/tests/debug/Test_general_coarse_pvdagm_svd_uv.cc index 78aacc94..299178fe 100644 --- a/tests/debug/Test_general_coarse_pvdagm_svd_uv.cc +++ b/tests/debug/Test_general_coarse_pvdagm_svd_uv.cc @@ -302,7 +302,7 @@ int main (int argc, char ** argv) DomainWallFermionD Ddwf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5); DomainWallFermionD Dpv(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,1.0,M5); - const int nbasis = 40; + const int nbasis = 60; const int cb = 0 ; NextToNearestStencilGeometry5D geom(Coarse5d); @@ -346,7 +346,7 @@ int main (int argc, char ** argv) // Warning: This routine calls PVdagM.Op, not PVdagM.HermOp typedef Aggregation Subspace; Subspace V(Coarse5d,FGrid,cb); - Subspace U(Coarse5d,FGrid,cb); + // Subspace U(Coarse5d,FGrid,cb); // Breeds right singular vectors with call to HermOp V.CreateSubspaceChebyshev(RNG5,PVdagM, @@ -359,7 +359,7 @@ int main (int argc, char ** argv) // nbasis, // 4000.0,0.003, // 300); - U.subspace=V.subspace; + // U.subspace=V.subspace; // typedef Aggregation CombinedSubspace; // CombinedSubspace CombinedUV(Coarse5d,FGrid,cb); @@ -373,7 +373,7 @@ int main (int argc, char ** argv) typedef GeneralCoarsenedMatrix LittleDiracOperator; typedef LittleDiracOperator::CoarseVector CoarseVector; LittleDiracOperator LittleDiracOpPV(geom,FGrid,Coarse5d); - LittleDiracOpPV.CoarsenOperator(PVdagM,U,V); + LittleDiracOpPV.CoarsenOperator(PVdagM,V,V); std::cout< TwoLevelMG; // TwoLevelMG TwoLevelPrecon(CombinedUV,CombinedUV, - TwoLevelMG TwoLevelPrecon(U,V, + TwoLevelMG TwoLevelPrecon(V,V, PVdagM, simple_fine, SmootherGCR, diff --git a/tests/debug/Test_general_coarse_wilson.cc b/tests/debug/Test_general_coarse_wilson.cc index 33375850..d2845cb8 100644 --- a/tests/debug/Test_general_coarse_wilson.cc +++ b/tests/debug/Test_general_coarse_wilson.cc @@ -153,7 +153,7 @@ int main (int argc, char ** argv) Coordinate clatt = GridDefaultLatt(); for(int d=0;d LinOpDw(Dw); - ShiftedNonHermitianLinearOperator ShiftedLinOpDw(Dw,0.5); + ShiftedNonHermitianLinearOperator ShiftedLinOpDw(Dw,0.01); Aggregates.CreateSubspaceGCR(RNG4, LinOpDw, @@ -225,7 +228,6 @@ int main (int argc, char ** argv) std::vector subspace(2*nbasis,FGrid); subspace=CombinedUV.subspace; - Complex one(1.0); c_src = one; // 1 in every element for vector 1. blockPromote(c_src,err,subspace); @@ -260,6 +262,15 @@ int main (int argc, char ** argv) ********** */ + // CG + { + MdagMLinearOperator HermOp(Dw); + ConjugateGradient CG(1.0e-8,10000); + Dw.Mdag(src,precsrc); + CG(HermOp,precsrc,result); + result=Zero(); + } + /////////////////////////////////////// // Coarse grid solver test /////////////////////////////////////// @@ -269,8 +280,12 @@ int main (int argc, char ** argv) std::cout< simple; NonHermitianLinearOperator LinOpCoarse(LittleDiracOp); + ShiftedNonHermitianLinearOperator ShiftedLinOpCoarse(LittleDiracOp,0.001); + // ShiftedNonHermitianLinearOperator ShiftedLinOpCoarse(LittleDiracOp,0.01); + // ShiftedNonHermitianLinearOperator ShiftedLinOpCoarse(LinOpCoarse,0.001); // PrecGeneralisedConjugateResidualNonHermitian L2PGCR(1.0e-4, 100, LinOpCoarse,simple,10,10); - PrecGeneralisedConjugateResidualNonHermitian L2PGCR(3.0e-2, 100, LinOpCoarse,simple,10,10); + // PrecGeneralisedConjugateResidualNonHermitian L2PGCR(1.0e-1, 100, LinOpCoarse,simple,30,30); + PrecGeneralisedConjugateResidualNonHermitian L2PGCR(2.0e-1, 50, ShiftedLinOpCoarse,simple,50,50); L2PGCR.Level(3); c_res=Zero(); L2PGCR(c_src,c_res); @@ -283,7 +298,7 @@ int main (int argc, char ** argv) std::cout< simple_fine; - PrecGeneralisedConjugateResidualNonHermitian SmootherGCR(0.01,1,ShiftedLinOpDw,simple_fine,16,16); + PrecGeneralisedConjugateResidualNonHermitian SmootherGCR(0.1,1,ShiftedLinOpDw,simple_fine,4,4); SmootherGCR.Level(2); LatticeFermionD f_src(FGrid); diff --git a/tests/debug/Test_general_coarse_wilson_nog5.cc b/tests/debug/Test_general_coarse_wilson_nog5.cc index e4e182cb..c3382c25 100644 --- a/tests/debug/Test_general_coarse_wilson_nog5.cc +++ b/tests/debug/Test_general_coarse_wilson_nog5.cc @@ -141,6 +141,7 @@ int main (int argc, char ** argv) { Grid_init(&argc,&argv); + const int Ls=16; GridCartesian * UGrid = SpaceTimeGrid::makeFourDimGrid(GridDefaultLatt(), GridDefaultSimd(Nd,vComplex::Nsimd()),GridDefaultMpi()); GridRedBlackCartesian * UrbGrid = SpaceTimeGrid::makeFourDimRedBlackGrid(UGrid); @@ -151,8 +152,8 @@ int main (int argc, char ** argv) // Construct a coarsened grid Coordinate clatt = GridDefaultLatt(); for(int d=0;d LinOpDw(Dw); - ShiftedNonHermitianLinearOperator ShiftedLinOpDw(Dw,0.1); + ShiftedNonHermitianLinearOperator ShiftedLinOpDw(Dw,0.01); Aggregates.CreateSubspaceGCR(RNG4, LinOpDw, nbasis); + LittleDiracOperator LittleDiracOp(geom,FGrid,Coarse4d); LittleDiracOp.CoarsenOperator(LinOpDw,Aggregates); @@ -216,7 +221,6 @@ int main (int argc, char ** argv) std::vector subspace(nbasis,FGrid); subspace=Aggregates.subspace; - Complex one(1.0); c_src = one; // 1 in every element for vector 1. blockPromote(c_src,err,subspace); @@ -251,6 +255,15 @@ int main (int argc, char ** argv) ********** */ + // CG + { + MdagMLinearOperator HermOp(Dw); + ConjugateGradient CG(1.0e-8,10000); + Dw.Mdag(src,precsrc); + CG(HermOp,precsrc,result); + result=Zero(); + } + /////////////////////////////////////// // Coarse grid solver test /////////////////////////////////////// @@ -260,8 +273,12 @@ int main (int argc, char ** argv) std::cout< simple; NonHermitianLinearOperator LinOpCoarse(LittleDiracOp); + ShiftedNonHermitianLinearOperator ShiftedLinOpCoarse(LittleDiracOp,0.001); + // ShiftedNonHermitianLinearOperator ShiftedLinOpCoarse(LittleDiracOp,0.01); + // ShiftedNonHermitianLinearOperator ShiftedLinOpCoarse(LinOpCoarse,0.001); // PrecGeneralisedConjugateResidualNonHermitian L2PGCR(1.0e-4, 100, LinOpCoarse,simple,10,10); - PrecGeneralisedConjugateResidualNonHermitian L2PGCR(1.0e-2, 200, LinOpCoarse,simple,10,10); + PrecGeneralisedConjugateResidualNonHermitian L2PGCR(1.0e-1, 100, LinOpCoarse,simple,30,30); + // PrecGeneralisedConjugateResidualNonHermitian L2PGCR(2.0e-1, 50, ShiftedLinOpCoarse,simple,50,50); L2PGCR.Level(3); c_res=Zero(); L2PGCR(c_src,c_res); @@ -274,7 +291,7 @@ int main (int argc, char ** argv) std::cout< simple_fine; - PrecGeneralisedConjugateResidualNonHermitian SmootherGCR(0.01,1,ShiftedLinOpDw,simple_fine,16,16); + PrecGeneralisedConjugateResidualNonHermitian SmootherGCR(0.1,1,ShiftedLinOpDw,simple_fine,6,6); SmootherGCR.Level(2); LatticeFermionD f_src(FGrid); diff --git a/tests/debug/Test_general_coarse_wilson_svd.cc b/tests/debug/Test_general_coarse_wilson_svd.cc index 3c7ff7d7..1d058878 100644 --- a/tests/debug/Test_general_coarse_wilson_svd.cc +++ b/tests/debug/Test_general_coarse_wilson_svd.cc @@ -170,11 +170,11 @@ int main (int argc, char ** argv) LatticeGaugeField Umu(UGrid); FieldMetaData header; - std::string file("ckpoint_lat.1000"); + std::string file("ckpoint_lat"); NerscIO::readConfiguration(Umu,header,file); - RealD csw =1.0; - RealD mass=-0.6222; + RealD csw =0.0; + RealD mass=-0.92; WilsonCloverFermionD Dw(Umu,*UGrid,*UrbGrid,mass,csw,csw); @@ -272,7 +272,7 @@ int main (int argc, char ** argv) TrivialPrecon simple; NonHermitianLinearOperator LinOpCoarse(LittleDiracOp); // PrecGeneralisedConjugateResidualNonHermitian L2PGCR(1.0e-4, 100, LinOpCoarse,simple,10,10); - PrecGeneralisedConjugateResidualNonHermitian L2PGCR(3.0e-2, 100, LinOpCoarse,simple,10,10); + PrecGeneralisedConjugateResidualNonHermitian L2PGCR(1.0e-2, 100, LinOpCoarse,simple,30,30); L2PGCR.Level(3); c_res=Zero(); L2PGCR(c_src,c_res); @@ -285,7 +285,7 @@ int main (int argc, char ** argv) std::cout< simple_fine; - PrecGeneralisedConjugateResidualNonHermitian SmootherGCR(0.01,1,ShiftedLinOpDw,simple_fine,16,16); + PrecGeneralisedConjugateResidualNonHermitian SmootherGCR(0.01,1,ShiftedLinOpDw,simple_fine,4,4); SmootherGCR.Level(2); LatticeFermionD f_src(FGrid); @@ -304,7 +304,7 @@ int main (int argc, char ** argv) LinOpCoarse, L2PGCR); - PrecGeneralisedConjugateResidualNonHermitian L1PGCR(1.0e-8,1000,LinOpDw,TwoLevelPrecon,16,16); + PrecGeneralisedConjugateResidualNonHermitian L1PGCR(1.0e-8,1000,LinOpDw,TwoLevelPrecon,32,32); L1PGCR.Level(1); f_res=Zero(); diff --git a/tests/debug/Test_general_coarse_wilson_svd_no5g.cc b/tests/debug/Test_general_coarse_wilson_svd_no5g.cc index 6dac9ce0..ad6e59fa 100644 --- a/tests/debug/Test_general_coarse_wilson_svd_no5g.cc +++ b/tests/debug/Test_general_coarse_wilson_svd_no5g.cc @@ -170,11 +170,11 @@ int main (int argc, char ** argv) LatticeGaugeField Umu(UGrid); FieldMetaData header; - std::string file("ckpoint_lat.1000"); + std::string file("ckpoint_lat"); NerscIO::readConfiguration(Umu,header,file); - RealD csw =1.0; - RealD mass=-0.6222; + RealD csw =0.0; + RealD mass=-0.92; WilsonCloverFermionD Dw(Umu,*UGrid,*UrbGrid,mass,csw,csw); @@ -264,7 +264,7 @@ int main (int argc, char ** argv) TrivialPrecon simple; NonHermitianLinearOperator LinOpCoarse(LittleDiracOp); // PrecGeneralisedConjugateResidualNonHermitian L2PGCR(1.0e-4, 100, LinOpCoarse,simple,10,10); - PrecGeneralisedConjugateResidualNonHermitian L2PGCR(3.0e-2, 100, LinOpCoarse,simple,10,10); + PrecGeneralisedConjugateResidualNonHermitian L2PGCR(1.0e-2, 100, LinOpCoarse,simple,30,30); L2PGCR.Level(3); c_res=Zero(); L2PGCR(c_src,c_res); @@ -277,7 +277,7 @@ int main (int argc, char ** argv) std::cout< simple_fine; - PrecGeneralisedConjugateResidualNonHermitian SmootherGCR(0.01,1,ShiftedLinOpDw,simple_fine,16,16); + PrecGeneralisedConjugateResidualNonHermitian SmootherGCR(0.01,1,ShiftedLinOpDw,simple_fine,6,6); SmootherGCR.Level(2); LatticeFermionD f_src(FGrid); @@ -296,7 +296,7 @@ int main (int argc, char ** argv) LinOpCoarse, L2PGCR); - PrecGeneralisedConjugateResidualNonHermitian L1PGCR(1.0e-8,1000,LinOpDw,TwoLevelPrecon,16,16); + PrecGeneralisedConjugateResidualNonHermitian L1PGCR(1.0e-8,1000,LinOpDw,TwoLevelPrecon,32,32); L1PGCR.Level(1); f_res=Zero(); diff --git a/tests/debug/Test_padded_cell_staple.cc b/tests/debug/Test_padded_cell_staple.cc index c6a58b73..cdc1337b 100644 --- a/tests/debug/Test_padded_cell_staple.cc +++ b/tests/debug/Test_padded_cell_staple.cc @@ -490,7 +490,7 @@ public: } } - GRID_ASSERT(s==nshift); + assert(s==nshift); coalescedWrite(gStaple_v[ss],stencil_ss); } );