mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-11-03 21:44:33 +00:00 
			
		
		
		
	Merge branch 'develop' into feature/hadrons
This commit is contained in:
		@@ -28,6 +28,37 @@ directory
 | 
			
		||||
/*  END LEGAL */
 | 
			
		||||
#include <Grid/Grid.h>
 | 
			
		||||
 | 
			
		||||
namespace Grid{
 | 
			
		||||
  struct WFParameters: Serializable {
 | 
			
		||||
    GRID_SERIALIZABLE_CLASS_MEMBERS(WFParameters,
 | 
			
		||||
            int, steps,
 | 
			
		||||
            double, step_size,
 | 
			
		||||
            int, meas_interval);
 | 
			
		||||
       
 | 
			
		||||
 | 
			
		||||
    template <class ReaderClass >
 | 
			
		||||
    WFParameters(Reader<ReaderClass>& Reader){
 | 
			
		||||
      read(Reader, "WilsonFlow", *this);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  struct ConfParameters: Serializable {
 | 
			
		||||
    GRID_SERIALIZABLE_CLASS_MEMBERS(ConfParameters,
 | 
			
		||||
           std::string, conf_prefix,
 | 
			
		||||
            std::string, rng_prefix,
 | 
			
		||||
				    int, StartConfiguration,
 | 
			
		||||
				    int, EndConfiguration,
 | 
			
		||||
            int, Skip);
 | 
			
		||||
  
 | 
			
		||||
    template <class ReaderClass >
 | 
			
		||||
    ConfParameters(Reader<ReaderClass>& Reader){
 | 
			
		||||
      read(Reader, "Configurations", *this);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int main(int argc, char **argv) {
 | 
			
		||||
  using namespace Grid;
 | 
			
		||||
  using namespace Grid::QCD;
 | 
			
		||||
@@ -42,22 +73,36 @@ int main(int argc, char **argv) {
 | 
			
		||||
  GridRedBlackCartesian     RBGrid(latt_size, simd_layout, mpi_layout);
 | 
			
		||||
 | 
			
		||||
  std::vector<int> seeds({1, 2, 3, 4, 5});
 | 
			
		||||
  GridSerialRNG sRNG;
 | 
			
		||||
  GridParallelRNG pRNG(&Grid);
 | 
			
		||||
  pRNG.SeedFixedIntegers(seeds);
 | 
			
		||||
 | 
			
		||||
  LatticeGaugeField Umu(&Grid), Uflow(&Grid);
 | 
			
		||||
  SU<Nc>::HotConfiguration(pRNG, Umu);
 | 
			
		||||
  
 | 
			
		||||
  typedef Grid::JSONReader       Serialiser;
 | 
			
		||||
  Serialiser Reader("input.json");
 | 
			
		||||
  WFParameters WFPar(Reader);
 | 
			
		||||
  ConfParameters CPar(Reader);
 | 
			
		||||
  CheckpointerParameters CPPar(CPar.conf_prefix, CPar.rng_prefix);
 | 
			
		||||
  BinaryHmcCheckpointer<PeriodicGimplR> CPBin(CPPar);
 | 
			
		||||
 | 
			
		||||
  for (int conf = CPar.StartConfiguration; conf <= CPar.EndConfiguration; conf+= CPar.Skip){
 | 
			
		||||
 | 
			
		||||
  CPBin.CheckpointRestore(conf, Umu, sRNG, pRNG);
 | 
			
		||||
 | 
			
		||||
  std::cout << std::setprecision(15);
 | 
			
		||||
  std::cout << GridLogMessage << "Plaquette: "
 | 
			
		||||
  std::cout << GridLogMessage << "Initial plaquette: "
 | 
			
		||||
    << WilsonLoops<PeriodicGimplR>::avgPlaquette(Umu) << std::endl;
 | 
			
		||||
 | 
			
		||||
  WilsonFlow<PeriodicGimplR> WF(200, 0.01);
 | 
			
		||||
  WilsonFlow<PeriodicGimplR> WF(WFPar.steps, WFPar.step_size, WFPar.meas_interval);
 | 
			
		||||
 | 
			
		||||
  WF.smear(Uflow, Umu);
 | 
			
		||||
 | 
			
		||||
  RealD WFlow_plaq = WilsonLoops<PeriodicGimplR>::avgPlaquette(Uflow);
 | 
			
		||||
  std::cout << GridLogMessage << "Plaquette: "<< WFlow_plaq << std::endl;
 | 
			
		||||
  RealD WFlow_TC   = WilsonLoops<PeriodicGimplR>::TopologicalCharge(Uflow);
 | 
			
		||||
  std::cout << GridLogMessage << "Plaquette          "<< conf << "   " << WFlow_plaq << std::endl;
 | 
			
		||||
  std::cout << GridLogMessage << "TopologicalCharge  "<< conf << "   " << WFlow_TC   << std::endl;
 | 
			
		||||
 | 
			
		||||
  std::cout<< GridLogMessage << " Admissibility check:\n";
 | 
			
		||||
  const double sp_adm = 0.067;                // admissible threshold
 | 
			
		||||
@@ -73,6 +118,6 @@ int main(int argc, char **argv) {
 | 
			
		||||
  std::cout<< GridLogMessage << "   (sp_admissible = "<< sp_adm <<")\n";
 | 
			
		||||
  //std::cout<< GridLogMessage << "   sp_admissible - sp_max = "<<sp_adm-sp_max <<"\n";
 | 
			
		||||
  std::cout<< GridLogMessage << "   sp_admissible - sp_ave = "<<sp_adm-sp_ave <<"\n";
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
  Grid_finalize();
 | 
			
		||||
}  // main
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user