1
0
mirror of https://github.com/paboyle/Grid.git synced 2024-11-10 07:55:35 +00:00

16^3 optimise

This commit is contained in:
Peter Boyle 2024-08-27 11:38:35 -04:00
parent ec25604a67
commit 9779aaea33

View File

@ -77,13 +77,13 @@ int main (int argc, char ** argv)
{ {
Grid_init(&argc,&argv); Grid_init(&argc,&argv);
const int Ls=24; const int Ls=16;
const int nbasis = 60; const int nbasis = 40;
const int cb = 0 ; const int cb = 0 ;
RealD mass=0.00078; RealD mass=0.01;
RealD M5=1.8; RealD M5=1.8;
RealD b=1.5; RealD b=1.0;
RealD c=0.5; RealD c=0.0;
GridCartesian * UGrid = SpaceTimeGrid::makeFourDimGrid(GridDefaultLatt(), GridCartesian * UGrid = SpaceTimeGrid::makeFourDimGrid(GridDefaultLatt(),
GridDefaultSimd(Nd,vComplex::Nsimd()), GridDefaultSimd(Nd,vComplex::Nsimd()),
@ -167,7 +167,7 @@ int main (int argc, char ** argv)
std::cout << "**************************************"<<std::endl; std::cout << "**************************************"<<std::endl;
ConjugateGradient<CoarseVector> coarseCG(4.0e-2,20000,true); ConjugateGradient<CoarseVector> coarseCG(4.0e-2,20000,true);
const int nrhs=12; const int nrhs=8;
Coordinate mpi=GridDefaultMpi(); Coordinate mpi=GridDefaultMpi();
Coordinate rhMpi ({1,1,mpi[0],mpi[1],mpi[2],mpi[3]}); Coordinate rhMpi ({1,1,mpi[0],mpi[1],mpi[2],mpi[3]});
@ -185,7 +185,7 @@ int main (int argc, char ** argv)
std::cout << "**************************************"<<std::endl; std::cout << "**************************************"<<std::endl;
typedef HermitianLinearOperator<MultiGeneralCoarsenedMatrix_t,CoarseVector> MrhsHermMatrix; typedef HermitianLinearOperator<MultiGeneralCoarsenedMatrix_t,CoarseVector> MrhsHermMatrix;
Chebyshev<CoarseVector> IRLCheby(0.01,42.0,301); // 1 iter Chebyshev<CoarseVector> IRLCheby(0.5,40.0,101); // 1 iter
MrhsHermMatrix MrhsCoarseOp (mrhs); MrhsHermMatrix MrhsCoarseOp (mrhs);
CoarseVector pm_src(CoarseMrhs); CoarseVector pm_src(CoarseMrhs);
@ -193,8 +193,8 @@ int main (int argc, char ** argv)
PowerMethod<CoarseVector> cPM; PowerMethod<CoarseVector> cPM;
cPM(MrhsCoarseOp,pm_src); cPM(MrhsCoarseOp,pm_src);
int Nk=192; int Nk=nrhs;
int Nm=384; int Nm=Nk*3;
int Nstop=Nk; int Nstop=Nk;
int Nconv_test_interval=1; int Nconv_test_interval=1;
@ -250,9 +250,9 @@ int main (int argc, char ** argv)
// Extra HDCG parameters // Extra HDCG parameters
////////////////////////// //////////////////////////
int maxit=3000; int maxit=3000;
ConjugateGradient<CoarseVector> CG(5.0e-2,maxit,false); ConjugateGradient<CoarseVector> CG(2.0e-1,maxit,false);
RealD lo=2.0; RealD lo=2.0;
int ord = 7; int ord = 9;
DoNothingGuesser<CoarseVector> DoNothing; DoNothingGuesser<CoarseVector> DoNothing;
HPDSolver<CoarseVector> HPDSolveMrhs(MrhsCoarseOp,CG,DoNothing); HPDSolver<CoarseVector> HPDSolveMrhs(MrhsCoarseOp,CG,DoNothing);