ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libBASS/Globals.cpp
(Generate patch)

Comparing trunk/OOPSE/libBASS/Globals.cpp (file contents):
Revision 855 by mmeineke, Thu Nov 6 22:01:37 2003 UTC vs.
Revision 1260 by gezelter, Fri Jun 11 14:13:54 2004 UTC

# Line 17 | Line 17
17   */
18  
19   //required parameters
20 < #define G_FORCEFIELD  1
21 < #define G_NCOMPONENTS 2
22 < #define G_TARGETTEMP  3
23 < #define G_ENSEMBLE    4
24 < #define G_DT          5
25 < #define G_RUNTIME     6
20 > #define G_FORCEFIELD         1
21 > #define G_NCOMPONENTS        2
22 > #define G_TARGETTEMP         3
23 > #define G_ENSEMBLE           4
24 > #define G_DT                 5
25 > #define G_RUNTIME            6
26  
27   //optional parameters
28 < #define G_INITIALCONFIG   7
29 < #define G_FINALCONFIG     8
30 < #define G_NMOL            9
31 < #define G_DENSITY        10
32 < #define G_BOX            11
33 < #define G_BOXX           12
34 < #define G_BOXY           13
35 < #define G_BOXZ           14
36 < #define G_SAMPLETIME     15
37 < #define G_STATUSTIME     16
38 < #define G_ECR            17
39 < #define G_DIELECTRIC     18
40 < #define G_TEMPSET        19
41 < #define G_THERMALTIME    20
42 < #define G_USEPBC         21
43 < #define G_MIXINGRULE     22
44 < #define G_EST            23
45 < #define G_USERF          24
46 < #define G_TARGETPRESSURE 25
47 < #define G_TAUTHERMOSTAT  26
48 < #define G_TAUBAROSTAT    27
49 < #define G_ZCONSTIME      28
50 < #define G_NZCONSTRAINTS  29
51 < #define G_ZCONSTOL       30
52 < #define G_ZCONSFORCEPOLICY 31
53 < #define G_SEED           32
54 < #define G_RESETTIME      33
55 < #define G_USEINITTIME    34
56 < #define G_USEINIT_XS_STATE 35
28 > #define G_INITIALCONFIG      7
29 > #define G_FINALCONFIG        8
30 > #define G_NMOL               9
31 > #define G_DENSITY           10
32 > #define G_BOX               11
33 > #define G_BOXX              12
34 > #define G_BOXY              13
35 > #define G_BOXZ              14
36 > #define G_SAMPLETIME        15
37 > #define G_STATUSTIME        16
38 > #define G_RCUT              17
39 > #define G_RSW               18
40 > #define G_DIELECTRIC        19
41 > #define G_TEMPSET           20
42 > #define G_THERMALTIME       21
43 > #define G_USEPBC            22
44 > #define G_MIXINGRULE        23
45 > #define G_USERF             24
46 > #define G_TARGETPRESSURE    25
47 > #define G_TAUTHERMOSTAT     26
48 > #define G_TAUBAROSTAT       27
49 > #define G_ZCONSTIME         28
50 > #define G_NZCONSTRAINTS     29
51 > #define G_ZCONSTOL          30
52 > #define G_ZCONSFORCEPOLICY  31
53 > #define G_SEED              32
54 > #define G_RESETTIME         33
55 > #define G_USEINITTIME       34
56 > #define G_USEINIT_XS_STATE  35
57   #define G_ORTHOBOXTOLERANCE 36
58 <
58 > #define G_MINIMIZER         37
59 > #define G_MIN_MAXITER       38
60 > #define G_MIN_WRITEFRQ      39
61 > #define G_MIN_STEPSIZE      40
62 > #define G_MIN_FTOL          41
63 > #define G_MIN_GTOL          42
64 > #define G_MIN_LSTOL         43
65 > #define G_MIN_LSMAXITER     44
66 > #define G_ZCONSGAP          45
67 > #define G_ZCONSFIXTIME      46
68 > #define G_ZCONSUSINGSMD     47
69 > #define G_USE_SOLID_THERM_INT     48
70 > #define G_USE_LIQUID_THERM_INT    49
71 > #define G_THERM_INT_LAMBDA  50
72 > #define G_THERM_INT_K       51
73 > #define G_FORCEFIELD_VARIANT 52
74  
75   Globals::Globals(){
76    
# Line 88 | Line 103 | Globals::Globals(){
103    addHash( "sampleTime",    G_SAMPLETIME );
104    addHash( "resetTime",     G_RESETTIME );
105    addHash( "statusTime",    G_STATUSTIME );
106 <  addHash( "electrostaticCutoffRadius",            G_ECR );
106 >  addHash( "cutoffRadius",  G_RCUT );
107 >  addHash( "switchingRadius",  G_RSW );
108    addHash( "dielectric",    G_DIELECTRIC );
109    addHash( "tempSet",       G_TEMPSET );
110    addHash( "thermalTime",   G_THERMALTIME );
111    addHash( "mixingRule",    G_MIXINGRULE);
112    addHash( "usePeriodicBoundaryConditions",        G_USEPBC);
97  addHash( "electrostaticSkinThickness",           G_EST );
113    addHash( "useReactionField",                     G_USERF );
114    addHash( "targetPressure",                       G_TARGETPRESSURE);
115    addHash( "tauThermostat",                        G_TAUTHERMOSTAT);
# Line 107 | Line 122 | Globals::Globals(){
122    addHash( "useInitialTime",                       G_USEINITTIME);
123    addHash( "useInitialExtendedSystemState",        G_USEINIT_XS_STATE);
124    addHash( "orthoBoxTolerance",                    G_ORTHOBOXTOLERANCE);
125 <        
126 <        
127 <  // define some default values
125 >  addHash( "minimizer",                            G_MINIMIZER);
126 >  addHash( "minMaxIter",                           G_MIN_MAXITER);
127 >  addHash( "minWriteFrq",                          G_MIN_WRITEFRQ);
128 >  addHash( "minStepSize",                          G_MIN_STEPSIZE);
129 >  addHash( "minFTol",                              G_MIN_FTOL);
130 >  addHash( "minGTol",                              G_MIN_GTOL);
131 >  addHash( "minLSTol",                             G_MIN_LSTOL);
132 >  addHash( "minLSMaxIter",                         G_MIN_LSMAXITER);
133 >  addHash( "zconsGap",                             G_ZCONSGAP);
134 >  addHash( "zconsFixtime",                         G_ZCONSFIXTIME);
135 >  addHash( "zconsUsingSMD",                        G_ZCONSUSINGSMD);
136 >  addHash( "useSolidThermInt",                     G_USE_SOLID_THERM_INT);
137 >  addHash( "useLiquidThermInt",                    G_USE_LIQUID_THERM_INT);
138 >  addHash( "thermodynamicIntegrationLambda",       G_THERM_INT_LAMBDA);
139 >  addHash( "thermodynamicIntegrationK",            G_THERM_INT_K);
140 >  addHash( "forceFieldVariant",                    G_FORCEFIELD_VARIANT);
141  
142    strcpy( mixingRule,"standard");  //default mixing rules to standard.
143    usePBC = 1; //default  periodic boundry conditions to on
144    useRF  = 0;
145 <  useInitTime = 1; // default to pull init time from the init file
146 <  useInitXSstate = 1; // default to pull the extended state from the init file
145 >  useInitTime = 0; // default to pull init time from the init file
146 >  useInitXSstate = 0; // default to pull the extended state from the init file
147    orthoBoxTolerance = 1E-6;
148 +  useSolidThermInt = 0; // default solid-state thermodynamic integration to off
149 +  useLiquidThermInt = 0; // default liquid thermodynamic integration to off
150  
151    have_force_field =  0;
152    have_n_components = 0;
# Line 138 | Line 168 | Globals::Globals(){
168    have_status_time =    0;
169    have_reset_time =     0;
170    have_thermal_time =   0;
171 <  have_ecr =            0;
171 >  have_rcut =           0;
172 >  have_rsw =            0;
173    have_dielectric =     0;
174    have_tempSet =        0;
144  have_est =            0;
175    have_target_pressure =0;
176    have_q_mass =         0;
177    have_tau_thermostat = 0;
# Line 150 | Line 180 | Globals::Globals(){
180    have_n_zConstraints = 0;
181    have_zConstraints   = 0;
182    have_zcons_tol = 0;
183 +  have_zcons_gap = 0;
184 +  have_zcons_fixtime = 0;
185 +  have_zcons_using_smd = 0;  
186    have_seed = 0;
187 +  have_minimizer = 0;
188 +  have_minimizer_maxiteration = 0;
189 +  have_minimizer_writefrq = 0;
190 +  have_minimizer_stepsize = 0;
191 +  have_minimizer_ftol = 0;
192 +  have_minimizer_gtol = 0;
193 +  have_minimizer_ls_tol = 0;
194 +  have_minimizer_ls_maxiteration = 0;
195 +  have_thermodynamic_integration_lambda = 0;
196 +  have_thermodynamic_integration_k = 0;
197 +  have_forcefield_variant = 0;
198  
199   }
200  
# Line 829 | Line 873 | int Globals::globalAssign( event* the_event ){
873        }
874        break;
875        
876 <    case G_ECR:
876 >    case G_RCUT:
877        switch( the_type ){
878          
879        case STRING:
880          the_event->err_msg =
881 <          strdup( "Global error. electrostaticCutoffRadius is not a double or int.\n" );
881 >          strdup( "Global error. cutoffRadius is not a double or int.\n" );
882          return 0;
883          break;
884          
885        case DOUBLE:
886 <        ecr = the_event->evt.asmt.rhs.dval;
887 <        have_ecr = 1;
886 >        rcut = the_event->evt.asmt.rhs.dval;
887 >        have_rcut = 1;
888          return 1;
889          break;
890          
891        case INT:
892 <        ecr = (double)the_event->evt.asmt.rhs.ival;
893 <        have_ecr = 1;
892 >        rcut = (double)the_event->evt.asmt.rhs.ival;
893 >        have_rcut = 1;
894          return 1;
895          break;
896          
897        default:
898          the_event->err_msg =
899 <          strdup( "Global error. electrostaticCutoffRadius unrecognized.\n" );
899 >          strdup( "Global error. cutoffRadius unrecognized.\n" );
900          return 0;
901          break;
902        }
903        break;
904  
905 <    case G_EST:
905 >    case G_RSW:
906        switch( the_type ){
907          
908        case STRING:
909          the_event->err_msg =
910 <          strdup( "Global error. electrostaticSkinThickness is not a double or int.\n" );
910 >          strdup( "Global error. switchingRadius is not a double or int.\n" );
911          return 0;
912          break;
913          
914        case DOUBLE:
915 <        est = the_event->evt.asmt.rhs.dval;
916 <        have_est = 1;
915 >        rsw = the_event->evt.asmt.rhs.dval;
916 >        have_rsw = 1;
917          return 1;
918          break;
919          
920        case INT:
921 <        est = (double)the_event->evt.asmt.rhs.ival;
922 <        have_est = 1;
921 >        rsw = (double)the_event->evt.asmt.rhs.ival;
922 >        have_rsw = 1;
923          return 1;
924          break;
925          
926        default:
927          the_event->err_msg =
928 <          strdup( "Global error. electrostaticSkinThickness unrecognized.\n" );
928 >          strdup( "Global error. switchingRadius unrecognized.\n" );
929          return 0;
930          break;
931        }
# Line 1185 | Line 1229 | int Globals::globalAssign( event* the_event ){
1229            strdup( "Global error. zconsForcePolicy unrecognized.\n" );
1230          return 0;
1231          break;
1232 +      }
1233 +      break;
1234 +      
1235 +    case G_ZCONSGAP:
1236 +      switch( the_type ){
1237 +  
1238 +      case STRING:
1239 +        the_event->err_msg =
1240 +          strdup( "Global error. zcons_gap is not a double or int.\n" );
1241 +        return 0;
1242 +        break;
1243 +  
1244 +      case DOUBLE:
1245 +        zcons_gap = the_event->evt.asmt.rhs.dval;
1246 +        have_zcons_gap= 1;
1247 +        return 1;
1248 +        break;
1249 +  
1250 +      case INT:
1251 +        zcons_gap= (double)the_event->evt.asmt.rhs.ival;
1252 +        have_zcons_gap= 1;
1253 +        return 1;
1254 +        break;
1255 +  
1256 +      default:
1257 +        the_event->err_msg =
1258 +          strdup( "Global error. zcons_gap unrecognized.\n" );
1259 +        return 0;
1260 +        break;
1261 +      }
1262 +      break;
1263 +
1264 +    case G_ZCONSFIXTIME:
1265 +      switch( the_type ){
1266 +  
1267 +      case STRING:
1268 +        the_event->err_msg =
1269 +          strdup( "Global error. zcons_fixtime is not a double or int.\n" );
1270 +        return 0;
1271 +        break;
1272 +  
1273 +      case DOUBLE:
1274 +        zcons_fixtime= the_event->evt.asmt.rhs.dval;
1275 +        have_zcons_fixtime= 1;
1276 +        return 1;
1277 +        break;
1278 +  
1279 +      case INT:
1280 +        zcons_fixtime= (double)the_event->evt.asmt.rhs.ival;
1281 +        have_zcons_fixtime= 1;
1282 +        return 1;
1283 +        break;
1284 +  
1285 +      default:
1286 +        the_event->err_msg =
1287 +          strdup( "Global error. zcons_fixtime unrecognized.\n" );
1288 +        return 0;
1289 +        break;
1290 +      }
1291 +      break;
1292 +
1293 +    case G_ZCONSUSINGSMD:
1294 +      switch( the_type ){
1295 +  
1296 +      case STRING:
1297 +        the_event->err_msg =
1298 +          strdup( "Global error. zcons_fixtime is not an  int.\n" );
1299 +        return 0;
1300 +        break;
1301 +  
1302 +      case DOUBLE:
1303 +        the_event->err_msg =
1304 +          strdup( "Global error. zcons_fixtime is not an  int.\n" );
1305 +        return 0;
1306 +        break;
1307 +  
1308 +      case INT:
1309 +        zcons_using_smd= the_event->evt.asmt.rhs.ival;
1310 +        have_zcons_using_smd= 1;
1311 +        return 1;
1312 +        break;
1313 +  
1314 +      default:
1315 +        the_event->err_msg =
1316 +          strdup( "Global error. zcons_usingsmd unrecognized.\n" );
1317 +        return 0;
1318 +        break;
1319        }
1320        break;
1321 +      
1322 +    case G_MINIMIZER:
1323 +      switch( the_type ){
1324 +
1325 +      case STRING:
1326 +        strcpy(minimizer_name, the_event->evt.asmt.rhs.sval);
1327 +
1328 +        for(int i = 0; zconsForcePolicy[i] != '\0'; i++){
1329 +          zconsForcePolicy[i] = toupper(zconsForcePolicy[i]);
1330 +        }
1331 +        have_minimizer= 1;
1332 +        return 1;
1333 +        break;
1334 +        
1335 +      case DOUBLE:
1336 +        the_event->err_msg =
1337 +          strdup( "Global error. minimizer_name is not a double or int.\n" );
1338 +        return 0;
1339 +        break;
1340 +        
1341 +      case INT:
1342 +        the_event->err_msg =
1343 +          strdup( "Global error. minimizer_name is not a double or int.\n" );
1344 +        return 0;
1345 +        break;
1346 +        
1347 +      default:
1348 +        the_event->err_msg =
1349 +          strdup( "Global error. minimizer_name unrecognized.\n" );
1350 +        return 0;
1351 +        break;
1352 +      }
1353 +      break;
1354 +
1355 +    case G_MIN_MAXITER:
1356 +      switch( the_type ){
1357 +
1358 +      case STRING:
1359 +        the_event->err_msg =
1360 +          strdup( "Global error. minimizer_maxiteration is not a double or int.\n" );
1361 +        return 1;
1362 +        break;
1363 +        
1364 +      case DOUBLE:
1365 +        minimizer_maxiteration = (int)the_event->evt.asmt.rhs.dval;
1366 +        have_minimizer_maxiteration = 1;
1367 +        return 1;
1368 +        break;
1369 +        
1370 +      case INT:
1371 +        minimizer_maxiteration = the_event->evt.asmt.rhs.ival;
1372 +        have_minimizer_maxiteration = 1;
1373 +        return 1;
1374 +        break;
1375 +        
1376 +      default:
1377 +        the_event->err_msg =
1378 +          strdup( "Global error. minimizer_maxiteration unrecognized.\n" );
1379 +        return 0;
1380 +        break;
1381 +      }
1382 +      break;
1383 +      
1384 +    case G_MIN_WRITEFRQ:
1385 +      switch( the_type ){
1386 +
1387 +      case STRING:
1388 +        the_event->err_msg =
1389 +          strdup( "Global error. minimizer_writefrq is not a double or int.\n" );
1390 +        return 1;
1391 +        break;
1392 +        
1393 +      case DOUBLE:
1394 +        minimizer_writefrq= the_event->evt.asmt.rhs.dval;
1395 +        have_minimizer_writefrq = 1;
1396 +        return 1;
1397 +        break;
1398 +        
1399 +      case INT:
1400 +        minimizer_writefrq= the_event->evt.asmt.rhs.ival;
1401 +        have_minimizer_writefrq = 1;
1402 +        return 1;
1403 +        break;
1404 +        
1405 +      default:
1406 +        the_event->err_msg =
1407 +          strdup( "Global error. minimizer_writefrq unrecognized.\n" );
1408 +        return 0;
1409 +        break;
1410 +      }
1411 +      break;
1412 +
1413 +    case G_MIN_STEPSIZE:
1414 +      switch( the_type ){
1415 +
1416 +      case STRING:
1417 +        the_event->err_msg =
1418 +          strdup( "Global error. minimizer_resetfrq is not a double or int.\n" );
1419 +        return 1;
1420 +        break;
1421 +        
1422 +      case DOUBLE:
1423 +        minimizer_stepsize= the_event->evt.asmt.rhs.dval;
1424 +        have_minimizer_stepsize = 1;
1425 +        return 1;
1426 +        break;
1427 +        
1428 +      case INT:
1429 +        minimizer_stepsize= the_event->evt.asmt.rhs.ival;
1430 +        have_minimizer_stepsize = 1;
1431 +        return 1;
1432 +        break;
1433 +        
1434 +      default:
1435 +        the_event->err_msg =
1436 +          strdup( "Global error. minimizer_resetfrq unrecognized.\n" );
1437 +        return 0;
1438 +        break;
1439 +      }
1440 +      break;      
1441 +
1442 +    case G_MIN_FTOL:
1443 +      switch( the_type ){
1444 +
1445 +      case STRING:
1446 +        the_event->err_msg =
1447 +          strdup( "Global error. minimizer_ftol is not a double or int.\n" );
1448 +        return 1;
1449 +        break;
1450 +        
1451 +      case DOUBLE:
1452 +        minimizer_ftol= the_event->evt.asmt.rhs.dval;
1453 +        have_minimizer_ftol = 1;
1454 +        return 1;
1455 +        break;
1456 +        
1457 +      case INT:
1458 +        minimizer_ftol= the_event->evt.asmt.rhs.ival;
1459 +        have_minimizer_ftol = 1;
1460 +        return 1;
1461 +        break;
1462 +        
1463 +      default:
1464 +        the_event->err_msg =
1465 +          strdup( "Global error. minimizer_ftol unrecognized.\n" );
1466 +        return 0;
1467 +        break;
1468 +      }
1469 +      break;
1470 +      
1471 +    case G_MIN_GTOL:
1472 +      switch( the_type ){
1473 +
1474 +      case STRING:
1475 +        the_event->err_msg =
1476 +          strdup( "Global error. minimizer_gtol is not a double or int.\n" );
1477 +        return 1;
1478 +        break;
1479 +        
1480 +      case DOUBLE:
1481 +        minimizer_gtol= the_event->evt.asmt.rhs.dval;
1482 +        have_minimizer_gtol = 1;
1483 +        return 1;
1484 +        break;
1485 +        
1486 +      case INT:
1487 +        minimizer_gtol= the_event->evt.asmt.rhs.ival;
1488 +        have_minimizer_gtol = 1;
1489 +        return 1;
1490 +        break;
1491 +        
1492 +      default:
1493 +        the_event->err_msg =
1494 +          strdup( "Global error. minimizer_gtol unrecognized.\n" );
1495 +        return 0;
1496 +        break;
1497 +      }
1498 +      break;
1499 +      
1500 +    case G_MIN_LSMAXITER:
1501 +      switch( the_type ){
1502 +
1503 +      case STRING:
1504 +        the_event->err_msg =
1505 +          strdup( "Global error. minimizer_ls_maxiteration is not a double or int.\n" );
1506 +        return 1;
1507 +        break;
1508 +        
1509 +      case DOUBLE:
1510 +        minimizer_ls_maxiteration = the_event->evt.asmt.rhs.dval;
1511 +        have_minimizer_ls_maxiteration = 1;
1512 +        return 1;
1513 +        break;
1514 +        
1515 +      case INT:
1516 +        minimizer_ls_maxiteration = the_event->evt.asmt.rhs.ival;
1517 +        have_minimizer_ls_maxiteration = 1;
1518 +        return 1;
1519 +        break;
1520 +        
1521 +      default:
1522 +        the_event->err_msg =
1523 +          strdup( "Global error. minimizer_ls_maxiteration unrecognized.\n" );
1524 +        return 0;
1525 +        break;
1526 +      }
1527 +      break;      
1528 +
1529 +    case G_MIN_LSTOL:
1530 +      switch( the_type ){
1531 +
1532 +      case STRING:
1533 +        the_event->err_msg =
1534 +          strdup( "Global error. minimizer_ls_tol is not a double or int.\n" );
1535 +        return 1;
1536 +        break;
1537 +        
1538 +      case DOUBLE:
1539 +        minimizer_ls_tol= the_event->evt.asmt.rhs.dval;
1540 +        have_minimizer_ls_tol = 1;
1541 +        return 1;
1542 +        break;
1543 +        
1544 +      case INT:
1545 +        minimizer_ls_tol= the_event->evt.asmt.rhs.ival;
1546 +        have_minimizer_ls_tol = 1;
1547 +        return 1;
1548 +        break;
1549 +        
1550 +      default:
1551 +        the_event->err_msg =
1552 +          strdup( "Global error. minimizer_ls_tol unrecognized.\n" );
1553 +        return 0;
1554 +        break;
1555 +      }
1556 +      break;
1557 +      
1558        // add more token cases here.
1559      case G_SEED:
1560        switch( the_type ){
# Line 1217 | Line 1585 | int Globals::globalAssign( event* the_event ){
1585          break;
1586        }
1587        break;
1220      // add more token cases here.
1588  
1589 +    case G_USE_SOLID_THERM_INT:
1590 +      if( the_type == STRING ){
1591 +        
1592 +        if( !strcasecmp( "true", the_event->evt.asmt.rhs.sval )) useSolidThermInt = 1;
1593 +        else if( !strcasecmp( "false", the_event->evt.asmt.rhs.sval )) useSolidThermInt = 0;
1594 +        else{
1595 +          the_event->err_msg =
1596 +            strdup( "Global error. useSolidThermInt was not \"true\" or \"false\".\n" );
1597 +          return 0;
1598 +        }
1599 +        return 1;
1600 +      }
1601 +      
1602 +      the_event->err_msg =
1603 +        strdup( "Global error. useSolidThermInt was not \"true\" or \"false\".\n" );
1604 +      return 0;
1605 +      break;
1606 +
1607 +    case G_USE_LIQUID_THERM_INT:
1608 +      if( the_type == STRING ){
1609 +        
1610 +        if( !strcasecmp( "true", the_event->evt.asmt.rhs.sval )) useLiquidThermInt = 1;
1611 +        else if( !strcasecmp( "false", the_event->evt.asmt.rhs.sval )) useLiquidThermInt = 0;
1612 +        else{
1613 +          the_event->err_msg =
1614 +            strdup( "Global error. useLiquidThermInt was not \"true\" or \"false\".\n" );
1615 +          return 0;
1616 +        }
1617 +        return 1;
1618 +      }
1619 +      
1620 +      the_event->err_msg =
1621 +        strdup( "Global error. useLiquidThermInt was not \"true\" or \"false\".\n" );
1622 +      return 0;
1623 +      break;
1624 +
1625 +    case G_THERM_INT_LAMBDA:
1626 +      switch( the_type ){
1627 +        
1628 +      case STRING:
1629 +        the_event->err_msg =
1630 +          strdup( "Global error. thermodynamicIntegrationLambda is not a double or int.\n" );
1631 +        return 1;
1632 +        break;
1633 +        
1634 +      case DOUBLE:
1635 +        thermodynamic_integration_lambda = the_event->evt.asmt.rhs.dval;
1636 +        have_thermodynamic_integration_lambda = 1;
1637 +        return 1;
1638 +        break;
1639 +        
1640 +      case INT:
1641 +        thermodynamic_integration_lambda = (double)the_event->evt.asmt.rhs.dval;
1642 +        have_thermodynamic_integration_lambda = 1;
1643 +        return 1;
1644 +        break;
1645 +        
1646 +      default:
1647 +        the_event->err_msg =
1648 +          strdup( "Global error. thermodynamicIntegrationLambda unrecognized.\n" );
1649 +        return 0;
1650 +        break;
1651 +      }
1652 +      break;      
1653 +
1654 +    case G_THERM_INT_K:
1655 +      switch( the_type ){
1656 +        
1657 +      case STRING:
1658 +        the_event->err_msg =
1659 +          strdup( "Global error. thermodynamicIntegrationK is not a double or int.\n" );
1660 +        return 1;
1661 +        break;
1662 +        
1663 +      case DOUBLE:
1664 +        thermodynamic_integration_k = the_event->evt.asmt.rhs.dval;
1665 +        have_thermodynamic_integration_k = 1;
1666 +        return 1;
1667 +        break;
1668 +        
1669 +      case INT:
1670 +        thermodynamic_integration_k = (double)the_event->evt.asmt.rhs.dval;
1671 +        have_thermodynamic_integration_k = 1;
1672 +        return 1;
1673 +        break;
1674 +        
1675 +      default:
1676 +        the_event->err_msg =
1677 +          strdup( "Global error. thermodynamicIntegrationK unrecognized.\n" );
1678 +        return 0;
1679 +        break;
1680 +      }
1681 +      break;      
1682 +    case G_FORCEFIELD_VARIANT:
1683 +      if( the_type == STRING ){
1684 +        strcpy( forcefield_variant, the_event->evt.asmt.rhs.sval );
1685 +        have_forcefield_variant = 1;
1686 +        return 1;
1687 +      }
1688 +      
1689 +      the_event->err_msg =
1690 +        strdup( "Global error. forceFieldVariant was not a string assignment.\n" );
1691 +      return 0;
1692 +      break;      
1693 +      // add more token cases here.      
1694      }
1695    }
1696    
# Line 1279 | Line 1751 | char* Globals::checkMe( void ){
1751      have_err= 1;
1752    }
1753    
1754 <  if( !have_ensemble ){
1755 <    strcat( err, "\t->ensemble\n" );
1756 <    have_err= 1;
1757 <  }
1754 >  if(!have_minimizer)
1755 >    if( !have_ensemble ){
1756 >      strcat( err, "\t->ensemble\n" );
1757 >      have_err= 1;
1758 >    }
1759    
1760    if( !have_dt ){
1761      strcat( err, "\t->dt\n" );

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines