X-Git-Url: http://git.treefish.org/~alex/phys/heatbath.git/blobdiff_plain/2a5bb51db3e73802064c0a55e9ef21943df2fff0..2b9b5b0349d4bc4509d936b9f0de3a021fdcec40:/sim-r.hpp diff --git a/sim-r.hpp b/sim-r.hpp index ae6adc4..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,7 +51,7 @@ 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; } @@ -62,9 +63,12 @@ void sim::_makeSweep() { } 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