]> git.treefish.org Git - phys/heatbath.git/blobdiff - sim-nonmetro.hpp
Removed boost from CMake.
[phys/heatbath.git] / sim-nonmetro.hpp
index 064a7bbb8fd77e8d5d3a9289c7aa17de0a4117c1..b72104f8342803be998034a0bc9a781b1e28e275 100644 (file)
@@ -53,6 +53,8 @@ void sim::updatePhi (const int& x)
   for (int nu=0; nu<4; nu++)
     V += conf[ (*nb)[x*4+nu] ].phi;
 
+  Y = sqrt(M) * conf[x].phi - V / sqrt(M);
+
 #if defined(ALGORITHM_AHBMHB) || defined(ALGORITHM_AHBMOR) || defined(ALGORITHM_AHBM0)
   Y = polar( abs(Y), gsl_rng_uniform(rangsl) * 2*M_PI );
 #elif defined(ALGORITHM_AORMHB) || defined(ALGORITHM_AORMOR) || defined(ALGORITHM_AORM0)
@@ -65,8 +67,10 @@ void sim::updatePhi (const int& x)
 #if defined(ALGORITHM_AHBMHB) || defined(ALGORITHM_AORMHB) || defined(ALGORITHM_A0MHB)
   Y = polar( magnYOfR( gsl_rng_uniform(rangsl) ), arg(Y) );
 #elif defined(ALGORITHM_AHBMOR) || defined(ALGORITHM_AORMOR) || defined(ALGORITHM_A0MOR)
-  Y = polar( magnYOfR( 1 - exp(-norm(Y)) ), arg(Y) ); //!!!!
+  Y = polar( magnYOfR( exp( -norm(Y) ) ), arg(Y) );
 #endif
+
+  conf[x].phi = Y / sqrt(M) + V / M;
 }
 
 void sim::_makeSweep() {  
@@ -82,7 +86,7 @@ void sim::_newParas() {
   *log << "SIM: Resetting fields." << endl << flush;
 
   for (int ix=0; ix<LSIZE2; ix++)
-    conf[ix].phi = 1;
+    conf[ix].phi = polar( 1., gsl_rng_uniform(rangsl) * 2*M_PI );
 }
 
 #endif