mirror of
https://github.com/paboyle/Grid.git
synced 2024-11-10 07:55:35 +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:
parent
0b603225d1
commit
68d9463be5
@ -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);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user