mirror of
https://github.com/paboyle/Grid.git
synced 2025-04-09 21:50:45 +01:00
Best so far on 96^3 350 Evecs converged on 4^4 block
This commit is contained in:
parent
d299c86633
commit
12b8be7cb9
@ -160,7 +160,8 @@ int main (int argc, char ** argv)
|
|||||||
GridRedBlackCartesian * FrbGrid = SpaceTimeGrid::makeFiveDimRedBlackGrid(Ls,UGrid);
|
GridRedBlackCartesian * FrbGrid = SpaceTimeGrid::makeFiveDimRedBlackGrid(Ls,UGrid);
|
||||||
|
|
||||||
// Construct a coarsened grid with 4^4 cell
|
// Construct a coarsened grid with 4^4 cell
|
||||||
Coordinate Block({4,4,6,6});
|
// Coordinate Block({4,4,6,4});
|
||||||
|
Coordinate Block({4,4,4,4});
|
||||||
Coordinate clatt = GridDefaultLatt();
|
Coordinate clatt = GridDefaultLatt();
|
||||||
for(int d=0;d<clatt.size();d++){
|
for(int d=0;d<clatt.size();d++){
|
||||||
clatt[d] = clatt[d]/Block[d];
|
clatt[d] = clatt[d]/Block[d];
|
||||||
@ -217,7 +218,7 @@ int main (int argc, char ** argv)
|
|||||||
std::string evec_file("/lustre/orion/phy157/proj-shared/phy157_dwf/paboyle/evecs.scidac");
|
std::string evec_file("/lustre/orion/phy157/proj-shared/phy157_dwf/paboyle/evecs.scidac");
|
||||||
std::string eval_file("/lustre/orion/phy157/proj-shared/phy157_dwf/paboyle/eval.xml");
|
std::string eval_file("/lustre/orion/phy157/proj-shared/phy157_dwf/paboyle/eval.xml");
|
||||||
bool load_agg=true;
|
bool load_agg=true;
|
||||||
bool load_refine=false;
|
bool load_refine=true;
|
||||||
bool load_mat=false;
|
bool load_mat=false;
|
||||||
bool load_evec=false;
|
bool load_evec=false;
|
||||||
|
|
||||||
@ -276,17 +277,19 @@ 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.0012,42.0,301); // 1 iter
|
// Chebyshev<CoarseVector> IRLCheby(0.0012,42.0,301); // 4.4.6.4
|
||||||
|
Chebyshev<CoarseVector> IRLCheby(0.0010,42.0,501); // for 4.4.4.4 blocking
|
||||||
MrhsHermMatrix MrhsCoarseOp (mrhs);
|
MrhsHermMatrix MrhsCoarseOp (mrhs);
|
||||||
|
|
||||||
CoarseVector pm_src(CoarseMrhs);
|
CoarseVector pm_src(CoarseMrhs);
|
||||||
pm_src = ComplexD(1.0);
|
pm_src = ComplexD(1.0);
|
||||||
PowerMethod<CoarseVector> cPM; cPM(MrhsCoarseOp,pm_src);
|
PowerMethod<CoarseVector> cPM; cPM(MrhsCoarseOp,pm_src);
|
||||||
|
|
||||||
int Nk=nrhs*30;
|
// int Nk=nrhs*30; // 4.4.6.4
|
||||||
// int Nk=nrhs*80;
|
// int Nk=nrhs*80;
|
||||||
|
int Nk=nrhs*60;
|
||||||
int Nm=Nk*4;
|
int Nm=Nk*4;
|
||||||
int Nstop=Nk;
|
int Nstop=350;
|
||||||
int Nconv_test_interval=1;
|
int Nconv_test_interval=1;
|
||||||
|
|
||||||
ImplicitlyRestartedBlockLanczosCoarse<CoarseVector> IRL(MrhsCoarseOp,
|
ImplicitlyRestartedBlockLanczosCoarse<CoarseVector> IRL(MrhsCoarseOp,
|
||||||
@ -299,7 +302,7 @@ int main (int argc, char ** argv)
|
|||||||
nrhs,
|
nrhs,
|
||||||
Nk,
|
Nk,
|
||||||
Nm,
|
Nm,
|
||||||
1e-4,20);
|
3e-4,2);
|
||||||
|
|
||||||
std::vector<RealD> eval(Nm);
|
std::vector<RealD> eval(Nm);
|
||||||
std::vector<CoarseVector> evec(Nm,Coarse5d);
|
std::vector<CoarseVector> evec(Nm,Coarse5d);
|
||||||
@ -368,7 +371,7 @@ int main (int argc, char ** argv)
|
|||||||
HDCGmrhs(src_mrhs,res_mrhs);
|
HDCGmrhs(src_mrhs,res_mrhs);
|
||||||
|
|
||||||
// Standard CG
|
// Standard CG
|
||||||
#if 0
|
#if 1
|
||||||
{
|
{
|
||||||
std::cout << "**************************************"<<std::endl;
|
std::cout << "**************************************"<<std::endl;
|
||||||
std::cout << "Calling red black CG"<<std::endl;
|
std::cout << "Calling red black CG"<<std::endl;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user