mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-11-04 05:54:32 +00:00 
			
		
		
		
	Merge branch 'feature/dirichlet' of https://github.com/paboyle/Grid into feature/dirichlet
This commit is contained in:
		@@ -75,8 +75,8 @@ int main (int argc, char ** argv)
 | 
			
		||||
  RealD M5=1.8;
 | 
			
		||||
 | 
			
		||||
  {
 | 
			
		||||
    OverlapWilsonContFracTanhFermionR Dcf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,1.0);
 | 
			
		||||
    HermitianLinearOperator<OverlapWilsonContFracTanhFermionR,LatticeFermion> HermIndefOp(Dcf);
 | 
			
		||||
    OverlapWilsonContFracTanhFermionD Dcf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,1.0);
 | 
			
		||||
    HermitianLinearOperator<OverlapWilsonContFracTanhFermionD,LatticeFermion> HermIndefOp(Dcf);
 | 
			
		||||
 | 
			
		||||
    HermIndefOp.Op(src,ref);
 | 
			
		||||
    HermIndefOp.OpDiag(src,result);
 | 
			
		||||
@@ -92,8 +92,8 @@ int main (int argc, char ** argv)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  {
 | 
			
		||||
    OverlapWilsonPartialFractionTanhFermionR Dpf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,1.0);
 | 
			
		||||
    HermitianLinearOperator<OverlapWilsonPartialFractionTanhFermionR,LatticeFermion> HermIndefOp(Dpf);
 | 
			
		||||
    OverlapWilsonPartialFractionTanhFermionD Dpf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,1.0);
 | 
			
		||||
    HermitianLinearOperator<OverlapWilsonPartialFractionTanhFermionD,LatticeFermion> HermIndefOp(Dpf);
 | 
			
		||||
    
 | 
			
		||||
    HermIndefOp.Op(src,ref);
 | 
			
		||||
    HermIndefOp.OpDiag(src,result);
 | 
			
		||||
 
 | 
			
		||||
@@ -140,14 +140,14 @@ int main (int argc, char ** argv)
 | 
			
		||||
  
 | 
			
		||||
  // RealD mass=0.1;
 | 
			
		||||
  // RealD M5=1.8;
 | 
			
		||||
  // DomainWallFermionR Ddwf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5);
 | 
			
		||||
  // DomainWallFermionD Ddwf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5);
 | 
			
		||||
 | 
			
		||||
  // LatticeFermion    src_o(FrbGrid);
 | 
			
		||||
  // LatticeFermion result_o(FrbGrid);
 | 
			
		||||
  // pickCheckerboard(Odd,src_o,src);
 | 
			
		||||
  // result_o=Zero();
 | 
			
		||||
 | 
			
		||||
  // SchurDiagMooeeOperator<DomainWallFermionR,LatticeFermion> HermOpEO(Ddwf);
 | 
			
		||||
  // SchurDiagMooeeOperator<DomainWallFermionD,LatticeFermion> HermOpEO(Ddwf);
 | 
			
		||||
  // ConjugateGradient<LatticeFermion> CG(1.0e-8,10000);
 | 
			
		||||
  // CG(HermOpEO,src_o,result_o);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -76,20 +76,20 @@ int main (int argc, char ** argv)
 | 
			
		||||
  RealD M5  =1.8;
 | 
			
		||||
 | 
			
		||||
  std::cout<<GridLogMessage <<"OverlapWilsonContFracTanhFermion  test"<<std::endl;
 | 
			
		||||
  OverlapWilsonContFracTanhFermionR Dcf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,1.0);
 | 
			
		||||
  TestWhat<OverlapWilsonContFracTanhFermionR>(Dcf,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5);
 | 
			
		||||
  OverlapWilsonContFracTanhFermionD Dcf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,1.0);
 | 
			
		||||
  TestWhat<OverlapWilsonContFracTanhFermionD>(Dcf,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5);
 | 
			
		||||
 | 
			
		||||
  std::cout<<GridLogMessage <<"OverlapWilsonContFracZolotarevFermion  test"<<std::endl;
 | 
			
		||||
  OverlapWilsonContFracZolotarevFermionR Dcfz(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,0.1,6.0);
 | 
			
		||||
  TestWhat<OverlapWilsonContFracZolotarevFermionR>(Dcfz,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5);
 | 
			
		||||
  OverlapWilsonContFracZolotarevFermionD Dcfz(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,0.1,6.0);
 | 
			
		||||
  TestWhat<OverlapWilsonContFracZolotarevFermionD>(Dcfz,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5);
 | 
			
		||||
 | 
			
		||||
  std::cout<<GridLogMessage <<"OverlapWilsonPartialFractionTanhFermion  test"<<std::endl;
 | 
			
		||||
  OverlapWilsonPartialFractionTanhFermionR Dpf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,1.0);
 | 
			
		||||
  TestWhat<OverlapWilsonPartialFractionTanhFermionR>(Dpf,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5);
 | 
			
		||||
  OverlapWilsonPartialFractionTanhFermionD Dpf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,1.0);
 | 
			
		||||
  TestWhat<OverlapWilsonPartialFractionTanhFermionD>(Dpf,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5);
 | 
			
		||||
 | 
			
		||||
  std::cout<<GridLogMessage <<"OverlapWilsonPartialFractionZolotarevFermion  test"<<std::endl;
 | 
			
		||||
  OverlapWilsonPartialFractionZolotarevFermionR Dpfz(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,0.1,6.0);
 | 
			
		||||
  TestWhat<OverlapWilsonPartialFractionZolotarevFermionR>(Dpfz,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5);
 | 
			
		||||
  OverlapWilsonPartialFractionZolotarevFermionD Dpfz(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,0.1,6.0);
 | 
			
		||||
  TestWhat<OverlapWilsonPartialFractionZolotarevFermionD>(Dpfz,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5);
 | 
			
		||||
 | 
			
		||||
  Grid_finalize();
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -90,7 +90,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
    RealD shift = 0.1234;
 | 
			
		||||
    RealD M5    = 1.8;
 | 
			
		||||
    int   pm    = 1;
 | 
			
		||||
    DomainWallEOFAFermionR Ddwf(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mq1, mq2, mq3, shift, pm, M5);
 | 
			
		||||
    DomainWallEOFAFermionD Ddwf(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mq1, mq2, mq3, shift, pm, M5);
 | 
			
		||||
 | 
			
		||||
    LatticeFermion src_e (FrbGrid);
 | 
			
		||||
    LatticeFermion src_o (FrbGrid);
 | 
			
		||||
@@ -216,7 +216,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
    pickCheckerboard(Even, phi_e, phi);
 | 
			
		||||
    pickCheckerboard(Odd , phi_o, phi);
 | 
			
		||||
 | 
			
		||||
    SchurDiagMooeeOperator<DomainWallEOFAFermionR,LatticeFermion> HermOpEO(Ddwf);
 | 
			
		||||
    SchurDiagMooeeOperator<DomainWallEOFAFermionD,LatticeFermion> HermOpEO(Ddwf);
 | 
			
		||||
    HermOpEO.MpcDagMpc(chi_e, dchi_e);
 | 
			
		||||
    HermOpEO.MpcDagMpc(chi_o, dchi_o);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -86,7 +86,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
 | 
			
		||||
  RealD mass=0.1;
 | 
			
		||||
  RealD M5  =1.8;
 | 
			
		||||
  DomainWallFermionR Ddwf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5);
 | 
			
		||||
  DomainWallFermionD Ddwf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5);
 | 
			
		||||
 | 
			
		||||
  LatticeFermion src_e (FrbGrid);
 | 
			
		||||
  LatticeFermion src_o (FrbGrid);
 | 
			
		||||
@@ -213,7 +213,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
  pickCheckerboard(Even,phi_e,phi);
 | 
			
		||||
  pickCheckerboard(Odd ,phi_o,phi);
 | 
			
		||||
 | 
			
		||||
  SchurDiagMooeeOperator<DomainWallFermionR,LatticeFermion> HermOpEO(Ddwf);
 | 
			
		||||
  SchurDiagMooeeOperator<DomainWallFermionD,LatticeFermion> HermOpEO(Ddwf);
 | 
			
		||||
  HermOpEO.MpcDagMpc(chi_e,dchi_e);
 | 
			
		||||
  HermOpEO.MpcDagMpc(chi_o,dchi_o);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -52,7 +52,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
  //  pRNG.SeedFixedIntegers(seeds);
 | 
			
		||||
  pRNG.SeedFixedIntegers(std::vector<int>({45,12,81,9}));
 | 
			
		||||
 | 
			
		||||
  typedef typename GparityWilsonFermionR::FermionField FermionField;
 | 
			
		||||
  typedef typename GparityWilsonFermionD::FermionField FermionField;
 | 
			
		||||
 | 
			
		||||
  FermionField src   (&Grid); random(pRNG,src);
 | 
			
		||||
  FermionField phi   (&Grid); random(pRNG,phi);
 | 
			
		||||
@@ -80,10 +80,10 @@ int main (int argc, char ** argv)
 | 
			
		||||
 | 
			
		||||
  RealD mass=0.1;
 | 
			
		||||
 | 
			
		||||
  GparityWilsonFermionR::ImplParams params;
 | 
			
		||||
  GparityWilsonFermionD::ImplParams params;
 | 
			
		||||
  std::vector<int> twists(Nd,0);  twists[1] = 1;
 | 
			
		||||
  params.twists = twists;
 | 
			
		||||
  GparityWilsonFermionR Dw(Umu,Grid,RBGrid,mass,params);
 | 
			
		||||
  GparityWilsonFermionD Dw(Umu,Grid,RBGrid,mass,params);
 | 
			
		||||
 | 
			
		||||
  FermionField src_e   (&RBGrid);
 | 
			
		||||
  FermionField src_o   (&RBGrid);
 | 
			
		||||
@@ -199,7 +199,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
  pickCheckerboard(Even,phi_e,phi);
 | 
			
		||||
  pickCheckerboard(Odd ,phi_o,phi);
 | 
			
		||||
 | 
			
		||||
  SchurDiagMooeeOperator<GparityWilsonFermionR,FermionField> HermOpEO(Dw);
 | 
			
		||||
  SchurDiagMooeeOperator<GparityWilsonFermionD,FermionField> HermOpEO(Dw);
 | 
			
		||||
  HermOpEO.MpcDagMpc(chi_e,dchi_e);
 | 
			
		||||
  HermOpEO.MpcDagMpc(chi_o,dchi_o);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -92,7 +92,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
    RealD shift = 0.1234;
 | 
			
		||||
    RealD M5    = 1.8;
 | 
			
		||||
    int   pm    = 1;
 | 
			
		||||
    MobiusEOFAFermionR Ddwf(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mq1, mq2, mq3, shift, pm, M5, b, c);
 | 
			
		||||
    MobiusEOFAFermionD Ddwf(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mq1, mq2, mq3, shift, pm, M5, b, c);
 | 
			
		||||
 | 
			
		||||
    LatticeFermion src_e (FrbGrid);
 | 
			
		||||
    LatticeFermion src_o (FrbGrid);
 | 
			
		||||
@@ -218,7 +218,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
    pickCheckerboard(Even, phi_e, phi);
 | 
			
		||||
    pickCheckerboard(Odd , phi_o, phi);
 | 
			
		||||
 | 
			
		||||
    SchurDiagMooeeOperator<MobiusEOFAFermionR,LatticeFermion> HermOpEO(Ddwf);
 | 
			
		||||
    SchurDiagMooeeOperator<MobiusEOFAFermionD,LatticeFermion> HermOpEO(Ddwf);
 | 
			
		||||
    HermOpEO.MpcDagMpc(chi_e, dchi_e);
 | 
			
		||||
    HermOpEO.MpcDagMpc(chi_o, dchi_o);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -108,8 +108,8 @@ int main (int argc, char ** argv)
 | 
			
		||||
  omegas.push_back( std::complex<double>(0.0686324988446592,-0.0550658530827402) );
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
  MobiusFermionR Ddwf(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mass, M5, 0.5,0.5);
 | 
			
		||||
  //  DomainWallFermionR Ddwf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5);
 | 
			
		||||
  MobiusFermionD Ddwf(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mass, M5, 0.5,0.5);
 | 
			
		||||
  //  DomainWallFermionD Ddwf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5);
 | 
			
		||||
 | 
			
		||||
  LatticeFermion src_e (FrbGrid);
 | 
			
		||||
  LatticeFermion src_o (FrbGrid);
 | 
			
		||||
@@ -264,7 +264,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
  pickCheckerboard(Odd ,phi_o,phi);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  SchurDiagMooeeOperator<MobiusFermionR,LatticeFermion> HermOpEO(Ddwf);
 | 
			
		||||
  SchurDiagMooeeOperator<MobiusFermionD,LatticeFermion> HermOpEO(Ddwf);
 | 
			
		||||
  HermOpEO.MpcDagMpc(chi_e,dchi_e);
 | 
			
		||||
  HermOpEO.MpcDagMpc(chi_o,dchi_o);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -53,9 +53,9 @@ int main (int argc, char ** argv)
 | 
			
		||||
  pRNG.SeedFixedIntegers(seeds);
 | 
			
		||||
  //  pRNG.SeedFixedIntegers(std::vector<int>({45,12,81,9});
 | 
			
		||||
 | 
			
		||||
  typedef typename ImprovedStaggeredFermionR::FermionField FermionField; 
 | 
			
		||||
  typedef typename ImprovedStaggeredFermionR::ComplexField ComplexField; 
 | 
			
		||||
  typename ImprovedStaggeredFermionR::ImplParams params; 
 | 
			
		||||
  typedef typename ImprovedStaggeredFermionD::FermionField FermionField; 
 | 
			
		||||
  typedef typename ImprovedStaggeredFermionD::ComplexField ComplexField; 
 | 
			
		||||
  typename ImprovedStaggeredFermionD::ImplParams params; 
 | 
			
		||||
 | 
			
		||||
  FermionField src   (&Grid); random(pRNG,src);
 | 
			
		||||
  FermionField result(&Grid); result=Zero();
 | 
			
		||||
@@ -130,7 +130,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
    //    ref = ref + mass * src;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ImprovedStaggeredFermionR Ds(Umu,Umu,Grid,RBGrid,mass,c1,c2,u0,params);
 | 
			
		||||
  ImprovedStaggeredFermionD Ds(Umu,Umu,Grid,RBGrid,mass,c1,c2,u0,params);
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  std::cout<<GridLogMessage<<"=========================================================="<<std::endl;
 | 
			
		||||
@@ -269,7 +269,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
  pickCheckerboard(Even,phi_e,phi);
 | 
			
		||||
  pickCheckerboard(Odd ,phi_o,phi);
 | 
			
		||||
 | 
			
		||||
  SchurDiagMooeeOperator<ImprovedStaggeredFermionR,FermionField> HermOpEO(Ds);
 | 
			
		||||
  SchurDiagMooeeOperator<ImprovedStaggeredFermionD,FermionField> HermOpEO(Ds);
 | 
			
		||||
  HermOpEO.MpcDagMpc(chi_e,dchi_e);
 | 
			
		||||
  HermOpEO.MpcDagMpc(chi_o,dchi_o);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -60,9 +60,9 @@ int main (int argc, char ** argv)
 | 
			
		||||
  pRNG4.SeedFixedIntegers(seeds);
 | 
			
		||||
  pRNG5.SeedFixedIntegers(seeds);
 | 
			
		||||
 | 
			
		||||
  typedef typename ImprovedStaggeredFermion5DR::FermionField FermionField; 
 | 
			
		||||
  typedef typename ImprovedStaggeredFermion5DR::ComplexField ComplexField; 
 | 
			
		||||
  typename ImprovedStaggeredFermion5DR::ImplParams params; 
 | 
			
		||||
  typedef typename ImprovedStaggeredFermion5DD::FermionField FermionField; 
 | 
			
		||||
  typedef typename ImprovedStaggeredFermion5DD::ComplexField ComplexField; 
 | 
			
		||||
  typename ImprovedStaggeredFermion5DD::ImplParams params; 
 | 
			
		||||
 | 
			
		||||
  FermionField src   (FGrid);
 | 
			
		||||
 | 
			
		||||
@@ -148,7 +148,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ImprovedStaggeredFermion5DR Ds(Umu,Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,c1,c2,u0,params);
 | 
			
		||||
  ImprovedStaggeredFermion5DD Ds(Umu,Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,c1,c2,u0,params);
 | 
			
		||||
 | 
			
		||||
  std::cout<<GridLogMessage<<"=========================================================="<<std::endl;
 | 
			
		||||
  std::cout<<GridLogMessage<<"= Testing Dhop against cshift implementation         "<<std::endl;
 | 
			
		||||
@@ -288,7 +288,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
  pickCheckerboard(Even,phi_e,phi);
 | 
			
		||||
  pickCheckerboard(Odd ,phi_o,phi);
 | 
			
		||||
 | 
			
		||||
  SchurDiagMooeeOperator<ImprovedStaggeredFermion5DR,FermionField> HermOpEO(Ds);
 | 
			
		||||
  SchurDiagMooeeOperator<ImprovedStaggeredFermion5DD,FermionField> HermOpEO(Ds);
 | 
			
		||||
  HermOpEO.MpcDagMpc(chi_e,dchi_e);
 | 
			
		||||
  HermOpEO.MpcDagMpc(chi_o,dchi_o);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -52,9 +52,9 @@ int main (int argc, char ** argv)
 | 
			
		||||
  pRNG.SeedFixedIntegers(seeds);
 | 
			
		||||
  //  pRNG.SeedFixedIntegers(std::vector<int>({45,12,81,9});
 | 
			
		||||
 | 
			
		||||
  typedef typename NaiveStaggeredFermionR::FermionField FermionField; 
 | 
			
		||||
  typedef typename NaiveStaggeredFermionR::ComplexField ComplexField; 
 | 
			
		||||
  typename NaiveStaggeredFermionR::ImplParams params; 
 | 
			
		||||
  typedef typename NaiveStaggeredFermionD::FermionField FermionField; 
 | 
			
		||||
  typedef typename NaiveStaggeredFermionD::ComplexField ComplexField; 
 | 
			
		||||
  typename NaiveStaggeredFermionD::ImplParams params; 
 | 
			
		||||
 | 
			
		||||
  FermionField src   (&Grid); random(pRNG,src);
 | 
			
		||||
  FermionField result(&Grid); result=Zero();
 | 
			
		||||
@@ -120,7 +120,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
    //    ref = ref + mass * src;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  NaiveStaggeredFermionR Ds(Umu,Grid,RBGrid,mass,c1,u0,params);
 | 
			
		||||
  NaiveStaggeredFermionD Ds(Umu,Grid,RBGrid,mass,c1,u0,params);
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  std::cout<<GridLogMessage<<"=========================================================="<<std::endl;
 | 
			
		||||
@@ -258,7 +258,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
  pickCheckerboard(Even,phi_e,phi);
 | 
			
		||||
  pickCheckerboard(Odd ,phi_o,phi);
 | 
			
		||||
 | 
			
		||||
  SchurDiagMooeeOperator<NaiveStaggeredFermionR,FermionField> HermOpEO(Ds);
 | 
			
		||||
  SchurDiagMooeeOperator<NaiveStaggeredFermionD,FermionField> HermOpEO(Ds);
 | 
			
		||||
  HermOpEO.MpcDagMpc(chi_e,dchi_e);
 | 
			
		||||
  HermOpEO.MpcDagMpc(chi_o,dchi_o);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -52,8 +52,8 @@ int main(int argc, char **argv)
 | 
			
		||||
  pRNG.SeedFixedIntegers(seeds);
 | 
			
		||||
  //  pRNG.SeedFixedIntegers(std::vector<int>({45,12,81,9});
 | 
			
		||||
 | 
			
		||||
  typedef typename WilsonCloverFermionR::FermionField FermionField;
 | 
			
		||||
  typename WilsonCloverFermionR::ImplParams params;
 | 
			
		||||
  typedef typename WilsonCloverFermionD::FermionField FermionField;
 | 
			
		||||
  typename WilsonCloverFermionD::ImplParams params;
 | 
			
		||||
  WilsonAnisotropyCoefficients anis;
 | 
			
		||||
 | 
			
		||||
  FermionField src(&Grid);
 | 
			
		||||
@@ -88,8 +88,8 @@ int main(int argc, char **argv)
 | 
			
		||||
  RealD csw_r = 1.0;
 | 
			
		||||
  RealD csw_t = 1.0;
 | 
			
		||||
 | 
			
		||||
  WilsonCloverFermionR Dwc(Umu, Grid, RBGrid, mass, csw_r, csw_t, anis, params);
 | 
			
		||||
  CompactWilsonCloverFermionR Dwc_compact(Umu, Grid, RBGrid, mass, csw_r, csw_t, 1.0, anis, params);
 | 
			
		||||
  WilsonCloverFermionD Dwc(Umu, Grid, RBGrid, mass, csw_r, csw_t, anis, params);
 | 
			
		||||
  CompactWilsonCloverFermionD Dwc_compact(Umu, Grid, RBGrid, mass, csw_r, csw_t, 1.0, anis, params);
 | 
			
		||||
 | 
			
		||||
  std::cout << GridLogMessage << "==========================================================" << std::endl;
 | 
			
		||||
  std::cout << GridLogMessage << "= Testing that Deo + Doe = Dunprec " << std::endl;
 | 
			
		||||
@@ -324,8 +324,8 @@ int main(int argc, char **argv)
 | 
			
		||||
  }
 | 
			
		||||
  /////////////////
 | 
			
		||||
 | 
			
		||||
  WilsonCloverFermionR Dwc_prime(U_prime, Grid, RBGrid, mass, csw_r, csw_t, anis, params);
 | 
			
		||||
  CompactWilsonCloverFermionR Dwc_compact_prime(U_prime, Grid, RBGrid, mass, csw_r, csw_t, 1.0, anis, params);
 | 
			
		||||
  WilsonCloverFermionD Dwc_prime(U_prime, Grid, RBGrid, mass, csw_r, csw_t, anis, params);
 | 
			
		||||
  CompactWilsonCloverFermionD Dwc_compact_prime(U_prime, Grid, RBGrid, mass, csw_r, csw_t, 1.0, anis, params);
 | 
			
		||||
 | 
			
		||||
  tmp = Omega * src;
 | 
			
		||||
  pickCheckerboard(Even, src_e, tmp);
 | 
			
		||||
@@ -377,14 +377,14 @@ int main(int argc, char **argv)
 | 
			
		||||
  chi = Zero();
 | 
			
		||||
  phi = Zero();
 | 
			
		||||
 | 
			
		||||
  WilsonFermionR Dw(Umu, Grid, RBGrid, mass, params);
 | 
			
		||||
  WilsonFermionD Dw(Umu, Grid, RBGrid, mass, params);
 | 
			
		||||
 | 
			
		||||
  Dw.M(src, result);
 | 
			
		||||
  Dwc.M(src, chi);
 | 
			
		||||
 | 
			
		||||
  Dwc_prime.M(Omega * src, phi);
 | 
			
		||||
 | 
			
		||||
  WilsonFermionR Dw_prime(U_prime, Grid, RBGrid, mass, params);
 | 
			
		||||
  WilsonFermionD Dw_prime(U_prime, Grid, RBGrid, mass, params);
 | 
			
		||||
  Dw_prime.M(Omega * src, result2);
 | 
			
		||||
 | 
			
		||||
  err = result - adj(Omega) * result2;
 | 
			
		||||
@@ -411,7 +411,7 @@ int main(int argc, char **argv)
 | 
			
		||||
  chi = Zero();
 | 
			
		||||
  phi = Zero();
 | 
			
		||||
  err = Zero();
 | 
			
		||||
  WilsonCloverFermionR Dwc_csw0(Umu, Grid, RBGrid, mass, 0.0, 0.0, anis, params); //  <-- Notice: csw=0
 | 
			
		||||
  WilsonCloverFermionD Dwc_csw0(Umu, Grid, RBGrid, mass, 0.0, 0.0, anis, params); //  <-- Notice: csw=0
 | 
			
		||||
 | 
			
		||||
  pickCheckerboard(Even, phi_e, phi);
 | 
			
		||||
  pickCheckerboard(Odd, phi_o, phi);
 | 
			
		||||
@@ -437,7 +437,7 @@ int main(int argc, char **argv)
 | 
			
		||||
  chi = Zero();
 | 
			
		||||
  phi = Zero();
 | 
			
		||||
  err = Zero();
 | 
			
		||||
  CompactWilsonCloverFermionR Dwc_compact_csw0(Umu, Grid, RBGrid, mass, 0.0, 0.0, 1.0, anis, params); //  <-- Notice: csw=0
 | 
			
		||||
  CompactWilsonCloverFermionD Dwc_compact_csw0(Umu, Grid, RBGrid, mass, 0.0, 0.0, 1.0, anis, params); //  <-- Notice: csw=0
 | 
			
		||||
 | 
			
		||||
  pickCheckerboard(Even, phi_e, phi);
 | 
			
		||||
  pickCheckerboard(Odd, phi_o, phi);
 | 
			
		||||
 
 | 
			
		||||
@@ -74,7 +74,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
    SU<Nc>::HotConfiguration(RNG4,Umu);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  typename WilsonCloverFermionR::ImplParams params;
 | 
			
		||||
  typename WilsonCloverFermionD::ImplParams params;
 | 
			
		||||
  WilsonAnisotropyCoefficients anis;
 | 
			
		||||
  RealD mass = 0.1;
 | 
			
		||||
  RealD csw_r = 1.0;
 | 
			
		||||
@@ -83,32 +83,32 @@ int main (int argc, char ** argv)
 | 
			
		||||
  std::cout<<GridLogMessage <<"=================================="<<std::endl;
 | 
			
		||||
  std::cout<<GridLogMessage <<"WilsonFermion test"<<std::endl;
 | 
			
		||||
  std::cout<<GridLogMessage <<"=================================="<<std::endl;
 | 
			
		||||
  WilsonFermionR Dw(Umu,*UGrid,*UrbGrid,mass,params);
 | 
			
		||||
  TestConserved<WilsonFermionR>(Dw,Umu,UGrid,UrbGrid,&RNG4);
 | 
			
		||||
  WilsonFermionD Dw(Umu,*UGrid,*UrbGrid,mass,params);
 | 
			
		||||
  TestConserved<WilsonFermionD>(Dw,Umu,UGrid,UrbGrid,&RNG4);
 | 
			
		||||
 | 
			
		||||
  std::cout<<GridLogMessage <<"=================================="<<std::endl;
 | 
			
		||||
  std::cout<<GridLogMessage <<"WilsonCloverFermion test"<<std::endl;
 | 
			
		||||
  std::cout<<GridLogMessage <<"=================================="<<std::endl;
 | 
			
		||||
  WilsonCloverFermionR Dwc(Umu, *UGrid, *UrbGrid, mass, csw_r, csw_t, anis, params);
 | 
			
		||||
  TestConserved<WilsonCloverFermionR>(Dwc,Umu,UGrid,UrbGrid,&RNG4);
 | 
			
		||||
  WilsonCloverFermionD Dwc(Umu, *UGrid, *UrbGrid, mass, csw_r, csw_t, anis, params);
 | 
			
		||||
  TestConserved<WilsonCloverFermionD>(Dwc,Umu,UGrid,UrbGrid,&RNG4);
 | 
			
		||||
 | 
			
		||||
  std::cout<<GridLogMessage <<"=================================="<<std::endl;
 | 
			
		||||
  std::cout<<GridLogMessage <<"CompactWilsonCloverFermion test"<<std::endl;
 | 
			
		||||
  std::cout<<GridLogMessage <<"=================================="<<std::endl;
 | 
			
		||||
  CompactWilsonCloverFermionR Dwcc(Umu, *UGrid, *UrbGrid, mass, csw_r, csw_t, 1.0, anis, params);
 | 
			
		||||
  TestConserved<CompactWilsonCloverFermionR>(Dwcc,Umu,UGrid,UrbGrid,&RNG4);
 | 
			
		||||
  CompactWilsonCloverFermionD Dwcc(Umu, *UGrid, *UrbGrid, mass, csw_r, csw_t, 1.0, anis, params);
 | 
			
		||||
  TestConserved<CompactWilsonCloverFermionD>(Dwcc,Umu,UGrid,UrbGrid,&RNG4);
 | 
			
		||||
 | 
			
		||||
  std::cout<<GridLogMessage <<"=================================="<<std::endl;
 | 
			
		||||
  std::cout<<GridLogMessage <<"WilsonExpCloverFermion test"<<std::endl;
 | 
			
		||||
  std::cout<<GridLogMessage <<"=================================="<<std::endl;
 | 
			
		||||
  WilsonExpCloverFermionR Dewc(Umu, *UGrid, *UrbGrid, mass, csw_r, csw_t, anis, params);
 | 
			
		||||
  TestConserved<WilsonExpCloverFermionR>(Dewc,Umu,UGrid,UrbGrid,&RNG4);
 | 
			
		||||
  WilsonExpCloverFermionD Dewc(Umu, *UGrid, *UrbGrid, mass, csw_r, csw_t, anis, params);
 | 
			
		||||
  TestConserved<WilsonExpCloverFermionD>(Dewc,Umu,UGrid,UrbGrid,&RNG4);
 | 
			
		||||
 | 
			
		||||
  std::cout<<GridLogMessage <<"=================================="<<std::endl;
 | 
			
		||||
  std::cout<<GridLogMessage <<"CompactWilsonExpCloverFermion test"<<std::endl;
 | 
			
		||||
  std::cout<<GridLogMessage <<"=================================="<<std::endl;
 | 
			
		||||
  CompactWilsonExpCloverFermionR Dewcc(Umu, *UGrid, *UrbGrid, mass, csw_r, csw_t, 1.0, anis, params);
 | 
			
		||||
  TestConserved<CompactWilsonExpCloverFermionR>(Dewcc,Umu,UGrid,UrbGrid,&RNG4);
 | 
			
		||||
  CompactWilsonExpCloverFermionD Dewcc(Umu, *UGrid, *UrbGrid, mass, csw_r, csw_t, 1.0, anis, params);
 | 
			
		||||
  TestConserved<CompactWilsonExpCloverFermionD>(Dewcc,Umu,UGrid,UrbGrid,&RNG4);
 | 
			
		||||
 | 
			
		||||
  Grid_finalize();
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -89,7 +89,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
 | 
			
		||||
  RealD mass=0.1;
 | 
			
		||||
 | 
			
		||||
  WilsonFermionR Dw(Umu,Grid,RBGrid,mass);
 | 
			
		||||
  WilsonFermionD Dw(Umu,Grid,RBGrid,mass);
 | 
			
		||||
 | 
			
		||||
  LatticeFermion src_e   (&RBGrid);
 | 
			
		||||
  LatticeFermion src_o   (&RBGrid);
 | 
			
		||||
@@ -205,7 +205,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
  pickCheckerboard(Even,phi_e,phi);
 | 
			
		||||
  pickCheckerboard(Odd ,phi_o,phi);
 | 
			
		||||
 | 
			
		||||
  SchurDiagMooeeOperator<WilsonFermionR,LatticeFermion> HermOpEO(Dw);
 | 
			
		||||
  SchurDiagMooeeOperator<WilsonFermionD,LatticeFermion> HermOpEO(Dw);
 | 
			
		||||
  HermOpEO.MpcDagMpc(chi_e,dchi_e);
 | 
			
		||||
  HermOpEO.MpcDagMpc(chi_o,dchi_o);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -52,8 +52,8 @@ int main(int argc, char **argv)
 | 
			
		||||
  pRNG.SeedFixedIntegers(seeds);
 | 
			
		||||
  //  pRNG.SeedFixedIntegers(std::vector<int>({45,12,81,9});
 | 
			
		||||
 | 
			
		||||
  typedef typename WilsonExpCloverFermionR::FermionField FermionField;
 | 
			
		||||
  typename WilsonExpCloverFermionR::ImplParams params;
 | 
			
		||||
  typedef typename WilsonExpCloverFermionD::FermionField FermionField;
 | 
			
		||||
  typename WilsonExpCloverFermionD::ImplParams params;
 | 
			
		||||
  WilsonAnisotropyCoefficients anis;
 | 
			
		||||
 | 
			
		||||
  FermionField src(&Grid);
 | 
			
		||||
@@ -88,8 +88,8 @@ int main(int argc, char **argv)
 | 
			
		||||
  RealD csw_r = 1.0;
 | 
			
		||||
  RealD csw_t = 1.0;
 | 
			
		||||
 | 
			
		||||
  WilsonExpCloverFermionR Dwc(Umu, Grid, RBGrid, mass, csw_r, csw_t, anis, params);
 | 
			
		||||
  CompactWilsonExpCloverFermionR Dwc_compact(Umu, Grid, RBGrid, mass, csw_r, csw_t, 1.0, anis, params);
 | 
			
		||||
  WilsonExpCloverFermionD Dwc(Umu, Grid, RBGrid, mass, csw_r, csw_t, anis, params);
 | 
			
		||||
  CompactWilsonExpCloverFermionD Dwc_compact(Umu, Grid, RBGrid, mass, csw_r, csw_t, 1.0, anis, params);
 | 
			
		||||
 | 
			
		||||
  std::cout << GridLogMessage << "==========================================================" << std::endl;
 | 
			
		||||
  std::cout << GridLogMessage << "= Testing that Deo + Doe = Dunprec " << std::endl;
 | 
			
		||||
@@ -324,8 +324,8 @@ int main(int argc, char **argv)
 | 
			
		||||
  }
 | 
			
		||||
  /////////////////
 | 
			
		||||
 | 
			
		||||
  WilsonExpCloverFermionR Dwc_prime(U_prime, Grid, RBGrid, mass, csw_r, csw_t, anis, params);
 | 
			
		||||
  CompactWilsonExpCloverFermionR Dwc_compact_prime(U_prime, Grid, RBGrid, mass, csw_r, csw_t, 1.0, anis, params);
 | 
			
		||||
  WilsonExpCloverFermionD Dwc_prime(U_prime, Grid, RBGrid, mass, csw_r, csw_t, anis, params);
 | 
			
		||||
  CompactWilsonExpCloverFermionD Dwc_compact_prime(U_prime, Grid, RBGrid, mass, csw_r, csw_t, 1.0, anis, params);
 | 
			
		||||
 | 
			
		||||
  tmp = Omega * src;
 | 
			
		||||
  pickCheckerboard(Even, src_e, tmp);
 | 
			
		||||
@@ -377,14 +377,14 @@ int main(int argc, char **argv)
 | 
			
		||||
  chi = Zero();
 | 
			
		||||
  phi = Zero();
 | 
			
		||||
 | 
			
		||||
  WilsonFermionR Dw(Umu, Grid, RBGrid, mass, params);
 | 
			
		||||
  WilsonFermionD Dw(Umu, Grid, RBGrid, mass, params);
 | 
			
		||||
 | 
			
		||||
  Dw.M(src, result);
 | 
			
		||||
  Dwc.M(src, chi);
 | 
			
		||||
 | 
			
		||||
  Dwc_prime.M(Omega * src, phi);
 | 
			
		||||
 | 
			
		||||
  WilsonFermionR Dw_prime(U_prime, Grid, RBGrid, mass, params);
 | 
			
		||||
  WilsonFermionD Dw_prime(U_prime, Grid, RBGrid, mass, params);
 | 
			
		||||
  Dw_prime.M(Omega * src, result2);
 | 
			
		||||
 | 
			
		||||
  err = result - adj(Omega) * result2;
 | 
			
		||||
@@ -411,7 +411,7 @@ int main(int argc, char **argv)
 | 
			
		||||
  chi = Zero();
 | 
			
		||||
  phi = Zero();
 | 
			
		||||
  err = Zero();
 | 
			
		||||
  WilsonExpCloverFermionR Dwc_csw0(Umu, Grid, RBGrid, mass, 0.0, 0.0, anis, params); //  <-- Notice: csw=0
 | 
			
		||||
  WilsonExpCloverFermionD Dwc_csw0(Umu, Grid, RBGrid, mass, 0.0, 0.0, anis, params); //  <-- Notice: csw=0
 | 
			
		||||
 | 
			
		||||
  pickCheckerboard(Even, phi_e, phi);
 | 
			
		||||
  pickCheckerboard(Odd, phi_o, phi);
 | 
			
		||||
@@ -437,7 +437,7 @@ int main(int argc, char **argv)
 | 
			
		||||
  chi = Zero();
 | 
			
		||||
  phi = Zero();
 | 
			
		||||
  err = Zero();
 | 
			
		||||
  CompactWilsonExpCloverFermionR Dwc_compact_csw0(Umu, Grid, RBGrid, mass, 0.0, 0.0, 1.0, anis, params); //  <-- Notice: csw=0
 | 
			
		||||
  CompactWilsonExpCloverFermionD Dwc_compact_csw0(Umu, Grid, RBGrid, mass, 0.0, 0.0, 1.0, anis, params); //  <-- Notice: csw=0
 | 
			
		||||
 | 
			
		||||
  pickCheckerboard(Even, phi_e, phi);
 | 
			
		||||
  pickCheckerboard(Odd, phi_o, phi);
 | 
			
		||||
 
 | 
			
		||||
@@ -90,7 +90,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
 | 
			
		||||
  RealD mass=0.1;
 | 
			
		||||
  RealD mu  = 0.1;
 | 
			
		||||
  WilsonTMFermionR Dw(Umu,Grid,RBGrid,mass,mu);
 | 
			
		||||
  WilsonTMFermionD Dw(Umu,Grid,RBGrid,mass,mu);
 | 
			
		||||
 | 
			
		||||
  LatticeFermion src_e   (&RBGrid);
 | 
			
		||||
  LatticeFermion src_o   (&RBGrid);
 | 
			
		||||
@@ -206,7 +206,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
  pickCheckerboard(Even,phi_e,phi);
 | 
			
		||||
  pickCheckerboard(Odd ,phi_o,phi);
 | 
			
		||||
 | 
			
		||||
  SchurDiagMooeeOperator<WilsonTMFermionR,LatticeFermion> HermOpEO(Dw);
 | 
			
		||||
  SchurDiagMooeeOperator<WilsonTMFermionD,LatticeFermion> HermOpEO(Dw);
 | 
			
		||||
  HermOpEO.MpcDagMpc(chi_e,dchi_e);
 | 
			
		||||
  HermOpEO.MpcDagMpc(chi_o,dchi_o);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -123,7 +123,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
		 RealD _mass,RealD _M5,
 | 
			
		||||
		 std::vector<ComplexD> &gamma, RealD b,RealD c,const ImplParams &p= ImplParams()) : 
 | 
			
		||||
  */
 | 
			
		||||
  ZMobiusFermionR Ddwf(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mass, M5, omegas,RealD(1.),RealD(0.));
 | 
			
		||||
  ZMobiusFermionD Ddwf(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mass, M5, omegas,RealD(1.),RealD(0.));
 | 
			
		||||
 | 
			
		||||
  LatticeFermion src_e (FrbGrid);
 | 
			
		||||
  LatticeFermion src_o (FrbGrid);
 | 
			
		||||
@@ -278,7 +278,7 @@ int main (int argc, char ** argv)
 | 
			
		||||
  pickCheckerboard(Odd ,phi_o,phi);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  SchurDiagMooeeOperator<ZMobiusFermionR,LatticeFermion> HermOpEO(Ddwf);
 | 
			
		||||
  SchurDiagMooeeOperator<ZMobiusFermionD,LatticeFermion> HermOpEO(Ddwf);
 | 
			
		||||
  HermOpEO.MpcDagMpc(chi_e,dchi_e);
 | 
			
		||||
  HermOpEO.MpcDagMpc(chi_o,dchi_o);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user