]> git.treefish.org Git - phys/u1casc.git/blobdiff - u1casc-ordinary/sim.hpp
Implemented starting configuration.
[phys/u1casc.git] / u1casc-ordinary / sim.hpp
index af989c93c0b4f221f6d920f34133fa0201c36310..986ae371fe10f54b8a041848e8e401e4b735745e 100644 (file)
@@ -4,6 +4,7 @@
 #include <gsl/gsl_rng.h>
 #include <complex>
 #include <math.h>
+#include <sys/time.h>
 
 #include "latlib/neigh.h"
 
@@ -17,10 +18,11 @@ public:
   neigh *nb;
   complex<double> *U, *phi;
   double kappa[2], lambda[2], beta;
-
+  void _newParas();
+  
 private:
+  void _resetConfig();
   void _makeSweep();
-  void _newParas();
   gsl_rng* rangsl;
   double rhoPhi(const int& iphi, const int& x0, const complex<double>& candPhi);
   double rhoU(const int& x0, const int& nu0, const complex<double>& candU);
@@ -32,6 +34,8 @@ sim::sim(o815 *_O815) : o815::sim( _O815,
                                   sizeof(complex<double>)*
                                   _O815->comargs.lsize[0]*_O815->comargs.lsize[0]*_O815->comargs.lsize[0]*_O815->comargs.lsize[1]*(2+4) ) {
 
+  struct timeval tv;
+
   lsize4 = _O815->comargs.lsize[0]*_O815->comargs.lsize[0]*_O815->comargs.lsize[0]*_O815->comargs.lsize[1];
 
   nb = new neigh(4, _O815->comargs.lsize[0], _O815->comargs.lsize[0], _O815->comargs.lsize[0], _O815->comargs.lsize[1]);
@@ -39,8 +43,9 @@ sim::sim(o815 *_O815) : o815::sim( _O815,
   phi = (complex<double>*)confMem;
   U = (complex<double>*)(confMem + sizeof(complex<double>)*lsize4*2);
 
+  gettimeofday(&tv, NULL);
   rangsl = gsl_rng_alloc(gsl_rng_ranlxs0);
-  gsl_rng_set(rangsl, time(NULL));
+  gsl_rng_set(rangsl, 1000000 * tv.tv_sec + tv.tv_usec);
 }
 
 void sim::_makeSweep() {  
@@ -56,7 +61,9 @@ void sim::_newParas() {
   lambda[0] = (*O815->paraQ)["lambdaone"];
   lambda[1] = (*O815->paraQ)["lambdatwo"];
   beta = (*O815->paraQ)["beta"];
+}
 
+void sim::_resetConfig() {
   for(int ix=0; ix<lsize4; ix++) {
     for(int i=0; i<2; i++) phi[ i*lsize4 + ix ] = 0;
     for(int nu=0; nu<4; nu++) U[ ix*4 + nu ] = 1;