mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-11-04 05:54:32 +00:00 
			
		
		
		
	Bug in two flav pseudofermion corrected to reimport gauge field upon rejection.
exp(-DeltaH) = 1 now, and plaquette is sensible. Will reproduce an old Wilson Gauge Wilson Fermion SCRI plaquette with precision in mass matching shortly.
This commit is contained in:
		@@ -144,6 +144,7 @@ namespace Grid{
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	gaussian(pRNG,eta);
 | 
						gaussian(pRNG,eta);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						FermOp.ImportGauge(U);
 | 
				
			||||||
	FermOp.Mdag(eta,Phi);
 | 
						FermOp.Mdag(eta,Phi);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	Phi=Phi*scale;
 | 
						Phi=Phi*scale;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -94,6 +94,7 @@ namespace Grid{
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      void evolve(LatticeLorentzColourMatrix& Uin){
 | 
					      void evolve(LatticeLorentzColourMatrix& Uin){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	Real DeltaH;
 | 
						Real DeltaH;
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	// Thermalizations
 | 
						// Thermalizations
 | 
				
			||||||
@@ -106,14 +107,16 @@ namespace Grid{
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	// Actual updates (evolve a copy Ucopy then copy back eventually)
 | 
						// Actual updates (evolve a copy Ucopy then copy back eventually)
 | 
				
			||||||
	LatticeLorentzColourMatrix Ucopy(Uin._grid);
 | 
						LatticeLorentzColourMatrix Ucopy(Uin._grid);
 | 
				
			||||||
	for(int iter=Params.StartingConfig; 
 | 
						for(int iter=Params.StartingConfig; iter < Params.Nsweeps+Params.StartingConfig; ++iter){
 | 
				
			||||||
	    iter < Params.Nsweeps+Params.StartingConfig; ++iter){
 | 
					
 | 
				
			||||||
	  std::cout<<GridLogMessage << "-- # Sweep = "<< iter <<  "\n";
 | 
						  std::cout<<GridLogMessage << "-- # Sweep = "<< iter <<  "\n";
 | 
				
			||||||
	  
 | 
						  
 | 
				
			||||||
	  Ucopy = Uin;
 | 
						  Ucopy = Uin;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	  DeltaH = evolve_step(Ucopy);
 | 
						  DeltaH = evolve_step(Ucopy);
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
	  if(metropolis_test(DeltaH)) Uin = Ucopy;
 | 
						  if(metropolis_test(DeltaH)) Uin = Ucopy;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	  //need sync? // Query Guido on this comment
 | 
						  //need sync? // Query Guido on this comment
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -60,10 +60,10 @@ namespace Grid{
 | 
				
			|||||||
      
 | 
					      
 | 
				
			||||||
      IntegratorPolicy TheIntegrator;// contains parameters too
 | 
					      IntegratorPolicy TheIntegrator;// contains parameters too
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
      void update_P(LatticeLorentzColourMatrix&U, int level,double ep){
 | 
					      void update_P(LatticeLorentzColourMatrix&U, int level,double ep){
 | 
				
			||||||
	for(int a=0; a<as[level].size(); ++a){
 | 
						for(int a=0; a<as[level].size(); ++a){
 | 
				
			||||||
	  LatticeLorentzColourMatrix force(U._grid);
 | 
						  LatticeLorentzColourMatrix force(U._grid);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	  as[level].at(a)->deriv(U,force);
 | 
						  as[level].at(a)->deriv(U,force);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	  Complex dSdt=0.0;
 | 
						  Complex dSdt=0.0;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -41,8 +41,9 @@ int main (int argc, char ** argv)
 | 
				
			|||||||
  FullSet.push_back(Level1);
 | 
					  FullSet.push_back(Level1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Create integrator
 | 
					  // Create integrator
 | 
				
			||||||
  typedef LeapFrog  IntegratorAlgorithm;// change here to change the algorithm
 | 
					  typedef MinimumNorm2  IntegratorAlgorithm;// change here to change the algorithm
 | 
				
			||||||
  IntegratorParameters MDpar(12,40,1.0);
 | 
					  //  typedef LeapFrog  IntegratorAlgorithm;// change here to change the algorithm
 | 
				
			||||||
 | 
					  IntegratorParameters MDpar(12,20,1.0);
 | 
				
			||||||
  std::vector<int> rel ={1};
 | 
					  std::vector<int> rel ={1};
 | 
				
			||||||
  Integrator<IntegratorAlgorithm> MDynamics(&Fine,MDpar, FullSet,rel);
 | 
					  Integrator<IntegratorAlgorithm> MDynamics(&Fine,MDpar, FullSet,rel);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user