mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-11-03 21:44:33 +00:00 
			
		
		
		
	Removing redundant arguments for integrator functions, step 1
This commit is contained in:
		@@ -63,6 +63,11 @@ class HMCRunnerParameters : Serializable {
 | 
			
		||||
class HmcRunner : public BinaryHmcRunner {
 | 
			
		||||
 public:
 | 
			
		||||
    HMCRunnerParameters HMCPar;
 | 
			
		||||
    void BuildTheAction(int argc, char **argv){}
 | 
			
		||||
};
 | 
			
		||||
/*
 | 
			
		||||
 | 
			
		||||
    // eliminate arcg and argv from here
 | 
			
		||||
    void BuildTheAction(int argc, char **argv)
 | 
			
		||||
 | 
			
		||||
  {
 | 
			
		||||
@@ -90,6 +95,7 @@ class HmcRunner : public BinaryHmcRunner {
 | 
			
		||||
 | 
			
		||||
    // Add observables
 | 
			
		||||
    // options for checkpointers
 | 
			
		||||
    // this can be moved outside the BuildTheAction
 | 
			
		||||
    //BinaryHmcCheckpointer
 | 
			
		||||
    //ILDGHmcCheckpointer
 | 
			
		||||
    //NerscHmcCheckpointer
 | 
			
		||||
@@ -107,9 +113,11 @@ class HmcRunner : public BinaryHmcRunner {
 | 
			
		||||
    ObservablesList.push_back(&PlaqLog);
 | 
			
		||||
    ObservablesList.push_back(&Checkpoint);
 | 
			
		||||
 | 
			
		||||
    // This must run from here so that the grids are defined
 | 
			
		||||
    Run(argc, argv, Checkpoint);  // no smearing
 | 
			
		||||
  };
 | 
			
		||||
};
 | 
			
		||||
*/
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -136,7 +144,57 @@ int main(int argc, char **argv) {
 | 
			
		||||
 | 
			
		||||
  TheHMC.MDparameters.set(TheHMC.HMCPar.MDsteps, TheHMC.HMCPar.TrajectorLength);
 | 
			
		||||
 | 
			
		||||
  TheHMC.BuildTheAction(argc, argv);
 | 
			
		||||
  //TheHMC.BuildTheAction(argc, argv);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
     // Typedefs to simplify notation
 | 
			
		||||
    typedef WilsonGaugeActionR GaugeAction;
 | 
			
		||||
    typedef WilsonImplR ImplPolicy;
 | 
			
		||||
    typedef WilsonFermionR FermionAction;
 | 
			
		||||
    typedef typename FermionAction::FermionField FermionField;
 | 
			
		||||
 | 
			
		||||
    // this can be simplified too. MakeDefaultGrid(Nd)
 | 
			
		||||
    TheHMC.UGrid = SpaceTimeGrid::makeFourDimGrid(
 | 
			
		||||
        GridDefaultLatt(), 
 | 
			
		||||
        GridDefaultSimd(Nd, vComplex::Nsimd()), 
 | 
			
		||||
        GridDefaultMpi());
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    // Gauge action
 | 
			
		||||
    std::cout << GridLogMessage << "Beta: " << TheHMC.HMCPar.beta << std::endl;
 | 
			
		||||
    GaugeAction Waction(TheHMC.HMCPar.beta);
 | 
			
		||||
 | 
			
		||||
    // Collect actions
 | 
			
		||||
    ActionLevel<BinaryHmcRunner::Field> Level1(1);
 | 
			
		||||
    Level1.push_back(&Waction);
 | 
			
		||||
    TheHMC.TheAction.push_back(Level1);
 | 
			
		||||
 | 
			
		||||
    // Add observables
 | 
			
		||||
    // options for checkpointers
 | 
			
		||||
    // this can be moved outside the BuildTheAction
 | 
			
		||||
    //BinaryHmcCheckpointer
 | 
			
		||||
    //ILDGHmcCheckpointer
 | 
			
		||||
    //NerscHmcCheckpointer
 | 
			
		||||
    NerscHmcCheckpointer<BinaryHmcRunner::ImplPolicy> Checkpoint(
 | 
			
		||||
        TheHMC.HMCPar.conf_prefix, TheHMC.HMCPar.rng_prefix, TheHMC.HMCPar.SaveInterval, TheHMC.HMCPar.format);
 | 
			
		||||
    // Can implement also a specific function in the hmcrunner
 | 
			
		||||
    // AddCheckpoint (...) that takes the same parameters + a string/tag
 | 
			
		||||
    // defining the type of the checkpointer
 | 
			
		||||
    // with tags can be implemented by overloading and no ifs
 | 
			
		||||
    // Then force all checkpoint to have few common functions
 | 
			
		||||
    // return an object that is then passed to the Run function
 | 
			
		||||
 | 
			
		||||
    PlaquetteLogger<BinaryHmcRunner::ImplPolicy> PlaqLog(
 | 
			
		||||
        std::string("Plaquette"));
 | 
			
		||||
    TheHMC.ObservablesList.push_back(&PlaqLog);
 | 
			
		||||
    TheHMC.ObservablesList.push_back(&Checkpoint);
 | 
			
		||||
 | 
			
		||||
    // This must run from here so that the grids are defined
 | 
			
		||||
    TheHMC.Run(argc, argv, Checkpoint);  // no smearing
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  Grid_finalize();
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -67,7 +67,7 @@ int main(int argc, char** argv) {
 | 
			
		||||
  GridParallelRNG RNG4(UGrid);
 | 
			
		||||
  RNG4.SeedFixedIntegers(seeds4);
 | 
			
		||||
 | 
			
		||||
  std::cout << GridLogMessage << "Generating random ferrmion field" << std::endl;
 | 
			
		||||
  std::cout << GridLogMessage << "Generating random fermion field" << std::endl;
 | 
			
		||||
  LatticeFermion src(FGrid);
 | 
			
		||||
  random(RNG5, src);
 | 
			
		||||
  LatticeFermion result(FGrid);
 | 
			
		||||
@@ -96,7 +96,7 @@ int main(int argc, char** argv) {
 | 
			
		||||
  GridStopWatch CGTimer;
 | 
			
		||||
 | 
			
		||||
  SchurDiagMooeeOperator<DomainWallFermionVec5dR, LatticeFermion> HermOpEO(Ddwf);
 | 
			
		||||
  ConjugateGradient<LatticeFermion> CG(1.0e-8, 10000, 0);// switch off the assert
 | 
			
		||||
  ConjugateGradient<LatticeFermion> CG(1.0e-8, 10000, 0);  // switch off the assert
 | 
			
		||||
 | 
			
		||||
  Ddwf.ZeroCounters();
 | 
			
		||||
  CGTimer.Start();
 | 
			
		||||
@@ -110,4 +110,4 @@ int main(int argc, char** argv) {
 | 
			
		||||
  Ddwf.Report();
 | 
			
		||||
 | 
			
		||||
  Grid_finalize();
 | 
			
		||||
}
 | 
			
		||||
}  
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user