| 167 | }; |
| 168 | |
| 169 | void SimParameters::scriptSet(const char *param, const char *value) { |
| 170 | |
| 171 | if ( CkMyRank() ) return; |
| 172 | |
| 173 | #define MAX_SCRIPT_PARAM_SIZE 128 |
| 174 | #define SCRIPT_PARSE_BOOL(NAME,VAR) { if ( ! strncasecmp(param,(NAME),MAX_SCRIPT_PARAM_SIZE) ) { (VAR) = atobool(value); return; } } |
| 175 | #define SCRIPT_PARSE_INT(NAME,VAR) { if ( ! strncasecmp(param,(NAME),MAX_SCRIPT_PARAM_SIZE) ) { (VAR) = atoi(value); return; } } |
| 176 | #define SCRIPT_PARSE_FLOAT(NAME,VAR) { if ( ! strncasecmp(param,(NAME),MAX_SCRIPT_PARAM_SIZE) ) { (VAR) = atof(value); return; } } |
| 177 | #define SCRIPT_PARSE_MOD_FLOAT(NAME,VAR,MOD) { if ( ! strncasecmp(param,(NAME),MAX_SCRIPT_PARAM_SIZE) ) { (VAR) = atof(value) MOD; return; } } |
| 178 | #define SCRIPT_PARSE_VECTOR(NAME,VAR) { if ( ! strncasecmp(param,(NAME),MAX_SCRIPT_PARAM_SIZE) ) { (VAR).set(value); return; } } |
| 179 | #define SCRIPT_PARSE_STRING(NAME,VAR) { if ( ! strncasecmp(param,(NAME),MAX_SCRIPT_PARAM_SIZE) ) { strcpy(VAR,value); return; } } |
| 180 | |
| 181 | SCRIPT_PARSE_FLOAT("scriptArg1",scriptArg1) |
| 182 | SCRIPT_PARSE_FLOAT("scriptArg2",scriptArg2) |
| 183 | SCRIPT_PARSE_FLOAT("scriptArg3",scriptArg3) |
| 184 | SCRIPT_PARSE_FLOAT("scriptArg4",scriptArg4) |
| 185 | SCRIPT_PARSE_FLOAT("scriptArg5",scriptArg5) |
| 186 | SCRIPT_PARSE_INT("scriptIntArg1",scriptIntArg1) |
| 187 | SCRIPT_PARSE_INT("scriptIntArg2",scriptIntArg2) |
| 188 | SCRIPT_PARSE_STRING("scriptStringArg1",scriptStringArg1) |
| 189 | SCRIPT_PARSE_STRING("scriptStringArg2",scriptStringArg2) |
| 190 | SCRIPT_PARSE_INT("numsteps",N) |
| 191 | if ( ! strncasecmp(param,"firsttimestep",MAX_SCRIPT_PARAM_SIZE) ) { |
| 192 | N = firstTimestep = atoi(value); return; |
| 193 | } |
| 194 | SCRIPT_PARSE_FLOAT("reassignTemp",reassignTemp) |
| 195 | SCRIPT_PARSE_FLOAT("rescaleTemp",rescaleTemp) |
| 196 | SCRIPT_PARSE_BOOL("velocityQuenching",minimizeOn) |
| 197 | SCRIPT_PARSE_BOOL("maximumMove",maximumMove) |
| 198 | // SCRIPT_PARSE_BOOL("Langevin",langevinOn) |
| 199 | if ( ! strncasecmp(param,"Langevin",MAX_SCRIPT_PARAM_SIZE) ) { |
| 200 | langevinOn = atobool(value); |
| 201 | if ( langevinOn && ! langevinOnAtStartup ) { |
| 202 | NAMD_die("Langevin must be enabled at startup to disable and re-enable in script."); |
| 203 | } |
| 204 | return; |
| 205 | } |
| 206 | SCRIPT_PARSE_FLOAT("langevinTemp",langevinTemp) |
| 207 | SCRIPT_PARSE_BOOL("langevinBAOAB",langevin_useBAOAB) // [!!] Use the BAOAB integrator or not |
| 208 | SCRIPT_PARSE_FLOAT("loweAndersenTemp",loweAndersenTemp) // BEGIN LA, END LA |
| 209 | SCRIPT_PARSE_BOOL("stochRescale",stochRescaleOn) |
| 210 | SCRIPT_PARSE_FLOAT("stochRescaleTemp",stochRescaleTemp) |
| 211 | SCRIPT_PARSE_FLOAT("initialTemp",initialTemp) |
| 212 | SCRIPT_PARSE_BOOL("useGroupPressure",useGroupPressure) |
| 213 | SCRIPT_PARSE_BOOL("useFlexibleCell",useFlexibleCell) |
| 214 | SCRIPT_PARSE_BOOL("useConstantArea",useConstantArea) |
| 215 | SCRIPT_PARSE_BOOL("fixCellDims",fixCellDims) |
| 216 | SCRIPT_PARSE_BOOL("fixCellDimX",fixCellDimX) |
| 217 | SCRIPT_PARSE_BOOL("fixCellDimY",fixCellDimY) |
| 218 | SCRIPT_PARSE_BOOL("fixCellDimZ",fixCellDimZ) |
| 219 | SCRIPT_PARSE_BOOL("useConstantRatio",useConstantRatio) |
| 220 | SCRIPT_PARSE_BOOL("LangevinPiston",langevinPistonOn) |
| 221 | SCRIPT_PARSE_MOD_FLOAT("LangevinPistonTarget", |
| 222 | langevinPistonTarget,/PRESSUREFACTOR) |
| 223 | SCRIPT_PARSE_FLOAT("LangevinPistonPeriod",langevinPistonPeriod) |
| 224 | SCRIPT_PARSE_FLOAT("LangevinPistonDecay",langevinPistonDecay) |
| 225 | SCRIPT_PARSE_FLOAT("LangevinPistonTemp",langevinPistonTemp) |
| 226 | SCRIPT_PARSE_MOD_FLOAT("SurfaceTensionTarget", |