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)
#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() {
*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