X-Git-Url: http://git.treefish.org/~alex/phys/heatbath.git/blobdiff_plain/d017fdeec8363b3e871692219bb7eacb614a41f1..7a2a209a8e67d342eb4faa2fa203a94fb68d5e6c:/sim-nor.hpp?ds=sidebyside diff --git a/sim-nor.hpp b/sim-nor.hpp new file mode 100644 index 0000000..aa305ff --- /dev/null +++ b/sim-nor.hpp @@ -0,0 +1,58 @@ +#ifndef SIM_HPP +#define SIM_HPP + +#include +#include +#include + +#include "latlib/neigh.h" + +class sim : public o815::sim { +public: + struct siteconf { + complex phi; + }; + sim(o815 *_O815); + siteconf* conf; + unsigned int LSIZE2; + +private: + void _makeSweep(); + void _newParas(); + + gsl_rng* rangsl; + + neigh *nb; + + void updatePhi (const int& x); +}; + + + +sim::sim(o815 *_O815) : o815::sim( _O815, + sizeof(siteconf)* + (_O815->comargs.lsize[0]*_O815->comargs.lsize[1]) ) { + conf = (siteconf*)confMem; + + rangsl = gsl_rng_alloc(gsl_rng_ranlxs0); + gsl_rng_set(rangsl, time(NULL)); + + LSIZE2 = _O815->comargs.lsize[0] * _O815->comargs.lsize[1]; + + nb = new neigh(2, _O815->comargs.lsize[0], _O815->comargs.lsize[1]); +} + +void sim::updatePhi (const int& x) +{ + const double r = gsl_rng_uniform(rangsl); + const double theta = gsl_rng_uniform(rangsl) * 2*M_PI; +} + +void sim::_makeSweep() { +} + +void sim::_newParas() { + /* reset variables */ +} + +#endif