\r
else if (strcmp(argv[i],"-trackE")==0) { r.trackE=true; }\r
else if (strcmp(argv[i],"-randInit")==0) { r.randomStart=true; }\r
+ else if (strcmp(argv[i],"-betah")==0) { if (++i==argc) break; else r.betah=strtodouble(argv[i]); }\r
+ else if (strcmp(argv[i],"-betaJ")==0) { if (++i==argc) break; else r.betaJ=strtodouble(argv[i]); }\r
\r
else printf("Unrecognized command! '%s'\n",argv[i]);\r
\r
\r
if (dataIn!=NULL) getCouplings(dataIn,J);\r
else { printf("Error reading input from file %s",r.getInfile().c_str()); exit(1); }\r
- \r
+\r
// Resize correlations and expJ\r
\r
int N = sizetolength(J.size());\r
\r
+ // apply temperature multipliers to fields and couplings\r
+ for (int i=0; i<N; i++) { for (int j=0; j<J[i].size(); j++) { J[i][j] *= r.betah; } }\r
+ for (int i=N; i<J.size(); i++) { for (int j=0; j<J[i].size(); j++) { J[i][j] *= r.betaJ; } }\r
+ \r
pk.resize(N+1, 0);\r
for (int i=0;i<J.size();i++) { p.push_back(std::vector<double>(J[i].size(),0)); expJ.push_back(std::vector<double>(J[i].size(),0)); }\r
for (int i=0;i<J.size();i++) { for (int j=0;j<J[i].size();j++) expJ[i][j] = exp(J[i][j]); }\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
+ double betah; // inverse temperature multiplier for fields\r
+ double betaJ; // inverse temperature multiplier for couplings\r
\r
RunParameters() {\r
\r
\r
trackE = false;\r
randomStart = false;\r
+\r
+ betah = 1.0;\r
+ betaJ = 1.0;\r
\r
}\r
std::string getInfile() { return (directory+"/"+infile+".j"); }\r