X-Git-Url: http://git.treefish.org/~alex/phys/heatbath.git/blobdiff_plain/529d936f699ce3260e09903837fbeab9159eb05f..ecc404b60bdb67c49c254ef13ac91a2e7c07b12c:/sim-r.hpp?ds=sidebyside diff --git a/sim-r.hpp b/sim-r.hpp index e908626..c3b6888 100644 --- a/sim-r.hpp +++ b/sim-r.hpp @@ -15,14 +15,15 @@ public: sim(o815 *_O815); siteconf* conf; unsigned int LSIZE2; + double M; + double m; + neigh *nb; private: void _makeSweep(); void _newParas(); gsl_rng* rangsl; - neigh *nb; void updatePhi (const int& x); - double M; }; @@ -50,19 +51,24 @@ void sim::updatePhi (const int& x) V += conf[ (*nb)[x*4+nu] ].phi; conf[x].phi = sqrt(std::log( 1./(1-r) )) / sqrt(M) - * complex( cos(theta), sin(theta) ) + * polar(1.0, theta) + V / M; } void sim::_makeSweep() { - for (int ix=0; ixcomargs.lsize[0]; it++) + for (int iy=(it+ichecker)%2; iycomargs.lsize[1]; iy+=2) + updatePhi( it*O815->comargs.lsize[1] + iy ); } void sim::_newParas() { + m = (*O815->paraQ)["mass"]; M = pow( (*O815->paraQ)["mass"], 2 ) + 4; *log << "SIM: Resetting fields." << endl << flush; - memset(conf, 0, sizeof(siteconf)*LSIZE2); + + for (int ix=0; ix