else if (strcmp(argv[i],"-v")==0) { r.useVerbose=true; }\r
\r
else if (strcmp(argv[i],"-trackE")==0) { r.trackE=true; }\r
+ else if (strcmp(argv[i],"-randInit")==0) { r.randomStart=true; }\r
\r
else printf("Unrecognized command! '%s'\n",argv[i]);\r
\r
for (int i=0;i<N;i++) fscanf(startIn,"%d",&lattice[i]);\r
\r
}\r
+\r
+ else if (r.randomStart) {\r
+ srand((unsigned)time(0));\r
+ int numThreads=1;\r
+ unsigned long seed[numThreads];\r
+ for (int i=0;i<numThreads;i++) seed[i]=rand();\r
+ MT::MersenneTwist mt;\r
+ mt.init_genrand(seed[0]);\r
+ for (int i=0; i<N; i++) lattice[i] = mt.uniform_int_closed(0, (int)p[i].size());\r
+ }\r
\r
else { for (int i=0;i<N;i++) lattice[i]=(int) p[i].size(); }\r
\r
bool savePk; // If true, record P(k) mutations curve\r
\r
bool trackE; // if true, save relative contribution to energy from fields and couplings\r
+ bool randomStart; // if true, set the initial state randomly\r
\r
RunParameters() {\r
\r
savePk=false;\r
\r
trackE = false;\r
+ randomStart = false;\r
\r
}\r
std::string getInfile() { return (directory+"/"+infile+".j"); }\r