@@ -20,7 +20,8 @@ class Measure
2020 double TOT_energy2; // energy^2
2121 double TOT_Mag; // magnetization s
2222 double TOT_Mag2; // magnetization squared
23- double TOT_WilX; // magnetization squared
23+ double TOT_WilX; // Wilson loop in the x-direction
24+ double TOT_WilY; // Wilson loop in the k-direction
2425
2526 // vector <double> Wilson_RunningAvg;
2627
@@ -43,6 +44,7 @@ Measure::Measure(const int & N, const PARAMS & p){
4344 TOT_Mag = 0.0 ;
4445 TOT_Mag2 = 0.0 ;
4546 TOT_WilX= 0.0 ;
47+ TOT_WilY= 0.0 ;
4648
4749 // Wilson_RunningAvg.assign(p.Dim_,0.0);
4850}
@@ -55,6 +57,7 @@ void Measure::zero(){
5557 TOT_Mag = 0.0 ;
5658 TOT_Mag2 = 0.0 ;
5759 TOT_WilX= 0.0 ;
60+ TOT_WilY= 0.0 ;
5861
5962 // for (int d=0; d<Wilson_RunningAvg.size(); d++)
6063 // Wilson_RunningAvg[d] = 0.0;
@@ -74,12 +77,17 @@ void Measure::record(double & energy, Spins & sigma, const array_2t & WilsonLoop
7477 TOT_Mag += 1.0 *mag;
7578 TOT_Mag2 += 1.0 *mag*mag;
7679
77- int prod = 1 ;
80+ int prodx = 1 ;
81+ int prody = 1 ;
7882 int L = WilsonLoops[0 ].size ();
79- for (int i=0 ; i<L; i++)
80- prod *= sigma.spin [WilsonLoops[0 ][i]];
83+ for (int i=0 ; i<L; i++){
84+ prodx *= sigma.spin [WilsonLoops[0 ][i]];
85+ prody *= sigma.spin [WilsonLoops[1 ][i]];
86+ }
87+
8188
82- TOT_WilX += 1.0 *prod;
89+ TOT_WilX += 1.0 *prodx;
90+ TOT_WilY += 1.0 *prody;
8391
8492}// update
8593
@@ -108,7 +116,8 @@ void Measure::output(const double & T, const double & H, const int & SimNum){
108116 cfout<<TOT_Mag2/(1.0 *MCS * Nspin*Nspin)<<" " ;
109117 double susc = TOT_Mag2/(1.0 *MCS) - TOT_Mag*TOT_Mag/(1.0 *MCS*MCS);
110118 cfout<<susc/(T*1.0 *Nspin)<<" " ;
111- cfout<<TOT_WilX/(1.0 *MCS)<<" \n " ;
119+ cfout<<TOT_WilX/(1.0 *MCS)<<" " ;
120+ cfout<<TOT_WilY/(1.0 *MCS)<<" \n " ;
112121
113122 cfout.close ();
114123
0 commit comments