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 957 by gezelter, Mon Jan 19 16:08:21 2004 UTC vs.
Revision 1188 by chrisfen, Sat May 22 18:17:05 2004 UTC

# Line 35 | Line 35
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
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
# Line 55 | Line 55
55   #define G_USEINITTIME       34
56   #define G_USEINIT_XS_STATE  35
57   #define G_ORTHOBOXTOLERANCE 36
58 < #define G_LJRCUT            37
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_THERM_INT     48
70 > #define G_THERM_INT_LAMBDA  49
71 > #define G_THERM_INT_K       50
72  
60
73   Globals::Globals(){
74    
75    int i;
# Line 89 | Line 101 | Globals::Globals(){
101    addHash( "sampleTime",    G_SAMPLETIME );
102    addHash( "resetTime",     G_RESETTIME );
103    addHash( "statusTime",    G_STATUSTIME );
104 <  addHash( "electrostaticCutoffRadius",            G_ECR );
104 >  addHash( "cutoffRadius",  G_RCUT );
105 >  addHash( "switchingRadius",  G_RSW );
106    addHash( "dielectric",    G_DIELECTRIC );
107    addHash( "tempSet",       G_TEMPSET );
108    addHash( "thermalTime",   G_THERMALTIME );
109    addHash( "mixingRule",    G_MIXINGRULE);
110    addHash( "usePeriodicBoundaryConditions",        G_USEPBC);
98  addHash( "electrostaticSkinThickness",           G_EST );
111    addHash( "useReactionField",                     G_USERF );
112    addHash( "targetPressure",                       G_TARGETPRESSURE);
113    addHash( "tauThermostat",                        G_TAUTHERMOSTAT);
# Line 108 | Line 120 | Globals::Globals(){
120    addHash( "useInitialTime",                       G_USEINITTIME);
121    addHash( "useInitialExtendedSystemState",        G_USEINIT_XS_STATE);
122    addHash( "orthoBoxTolerance",                    G_ORTHOBOXTOLERANCE);
123 <  addHash( "LJrcut",                               G_LJRCUT);
124 <        
125 <        
126 <  // define some default values
123 >  addHash( "minimizer", G_MINIMIZER);
124 >  addHash( "minMaxIter", G_MIN_MAXITER);
125 >  addHash( "minWriteFrq", G_MIN_WRITEFRQ);
126 >  addHash( "minStepSize", G_MIN_STEPSIZE);
127 >  addHash( "minFTol", G_MIN_FTOL);
128 >  addHash( "minGTol", G_MIN_GTOL);
129 >  addHash( "minLSTol", G_MIN_LSTOL);
130 >  addHash( "minLSMaxIter", G_MIN_LSMAXITER);
131 >  addHash( "zconsGap", G_ZCONSGAP);
132 >  addHash( "zconsFixtime", G_ZCONSFIXTIME);
133 >  addHash( "zconsUsingSMD", G_ZCONSUSINGSMD);
134 >  addHash( "useThermInt",                    G_USE_THERM_INT);
135 >  addHash( "thermodynamicIntegrationLambda", G_THERM_INT_LAMBDA);
136 >  addHash( "thermodynamicIntegrationK",      G_THERM_INT_K);
137  
138    strcpy( mixingRule,"standard");  //default mixing rules to standard.
139    usePBC = 1; //default  periodic boundry conditions to on
140    useRF  = 0;
141 <  useInitTime = 1; // default to pull init time from the init file
142 <  useInitXSstate = 1; // default to pull the extended state from the init file
141 >  useInitTime = 0; // default to pull init time from the init file
142 >  useInitXSstate = 0; // default to pull the extended state from the init file
143    orthoBoxTolerance = 1E-6;
144 +  useThermInt = 0; // default thermodynamic integration to off
145  
146    have_force_field =  0;
147    have_n_components = 0;
# Line 140 | Line 163 | Globals::Globals(){
163    have_status_time =    0;
164    have_reset_time =     0;
165    have_thermal_time =   0;
166 <  have_ecr =            0;
166 >  have_rcut =           0;
167 >  have_rsw =            0;
168    have_dielectric =     0;
169    have_tempSet =        0;
146  have_est =            0;
170    have_target_pressure =0;
171    have_q_mass =         0;
172    have_tau_thermostat = 0;
# Line 152 | Line 175 | Globals::Globals(){
175    have_n_zConstraints = 0;
176    have_zConstraints   = 0;
177    have_zcons_tol = 0;
178 +  have_zcons_gap = 0;
179 +  have_zcons_fixtime = 0;
180 +  have_zcons_using_smd = 0;  
181    have_seed = 0;
182 <  have_ljrcut = 0;
182 >  have_minimizer = 0;
183 >  have_minimizer_maxiteration = 0;
184 >  have_minimizer_writefrq = 0;
185 >  have_minimizer_stepsize = 0;
186 >  have_minimizer_ftol = 0;
187 >  have_minimizer_gtol = 0;
188 >  have_minimizer_ls_tol = 0;
189 >  have_minimizer_ls_maxiteration = 0;
190 >  have_thermodynamic_integration_lambda = 0;
191 >  have_thermodynamic_integration_k = 0;
192  
193   }
194  
# Line 831 | Line 866 | int Globals::globalAssign( event* the_event ){
866          break;
867        }
868        break;
834
835    case G_LJRCUT:
836      switch( the_type ){
837        
838      case STRING:
839        the_event->err_msg =
840          strdup( "Global error. LJrcut is not a double or int.\n" );
841        return 0;
842        break;
843        
844      case DOUBLE:
845        LJrcut = the_event->evt.asmt.rhs.dval;
846        have_ljrcut = 1;
847        return 1;
848        break;
849        
850      case INT:
851        LJrcut = (double)the_event->evt.asmt.rhs.ival;
852        have_ljrcut = 1;
853        return 1;
854        break;
855        
856      default:
857        the_event->err_msg =
858          strdup( "Global error. LJrcut unrecognized.\n" );
859        return 0;
860        break;
861      }
862      break;
869        
870 <    case G_ECR:
870 >    case G_RCUT:
871        switch( the_type ){
872          
873        case STRING:
874          the_event->err_msg =
875 <          strdup( "Global error. electrostaticCutoffRadius is not a double or int.\n" );
875 >          strdup( "Global error. cutoffRadius is not a double or int.\n" );
876          return 0;
877          break;
878          
879        case DOUBLE:
880 <        ecr = the_event->evt.asmt.rhs.dval;
881 <        have_ecr = 1;
880 >        rcut = the_event->evt.asmt.rhs.dval;
881 >        have_rcut = 1;
882          return 1;
883          break;
884          
885        case INT:
886 <        ecr = (double)the_event->evt.asmt.rhs.ival;
887 <        have_ecr = 1;
886 >        rcut = (double)the_event->evt.asmt.rhs.ival;
887 >        have_rcut = 1;
888          return 1;
889          break;
890          
891        default:
892          the_event->err_msg =
893 <          strdup( "Global error. electrostaticCutoffRadius unrecognized.\n" );
893 >          strdup( "Global error. cutoffRadius unrecognized.\n" );
894          return 0;
895          break;
896        }
897        break;
898  
899 <    case G_EST:
899 >    case G_RSW:
900        switch( the_type ){
901          
902        case STRING:
903          the_event->err_msg =
904 <          strdup( "Global error. electrostaticSkinThickness is not a double or int.\n" );
904 >          strdup( "Global error. switchingRadius is not a double or int.\n" );
905          return 0;
906          break;
907          
908        case DOUBLE:
909 <        est = the_event->evt.asmt.rhs.dval;
910 <        have_est = 1;
909 >        rsw = the_event->evt.asmt.rhs.dval;
910 >        have_rsw = 1;
911          return 1;
912          break;
913          
914        case INT:
915 <        est = (double)the_event->evt.asmt.rhs.ival;
916 <        have_est = 1;
915 >        rsw = (double)the_event->evt.asmt.rhs.ival;
916 >        have_rsw = 1;
917          return 1;
918          break;
919          
920        default:
921          the_event->err_msg =
922 <          strdup( "Global error. electrostaticSkinThickness unrecognized.\n" );
922 >          strdup( "Global error. switchingRadius unrecognized.\n" );
923          return 0;
924          break;
925        }
# Line 1217 | Line 1223 | int Globals::globalAssign( event* the_event ){
1223            strdup( "Global error. zconsForcePolicy unrecognized.\n" );
1224          return 0;
1225          break;
1226 +      }
1227 +      break;
1228 +      
1229 +    case G_ZCONSGAP:
1230 +      switch( the_type ){
1231 +  
1232 +      case STRING:
1233 +        the_event->err_msg =
1234 +          strdup( "Global error. zcons_gap is not a double or int.\n" );
1235 +        return 0;
1236 +        break;
1237 +  
1238 +      case DOUBLE:
1239 +        zcons_gap = the_event->evt.asmt.rhs.dval;
1240 +        have_zcons_gap= 1;
1241 +        return 1;
1242 +        break;
1243 +  
1244 +      case INT:
1245 +        zcons_gap= (double)the_event->evt.asmt.rhs.ival;
1246 +        have_zcons_gap= 1;
1247 +        return 1;
1248 +        break;
1249 +  
1250 +      default:
1251 +        the_event->err_msg =
1252 +          strdup( "Global error. zcons_gap unrecognized.\n" );
1253 +        return 0;
1254 +        break;
1255        }
1256        break;
1257 +
1258 +    case G_ZCONSFIXTIME:
1259 +      switch( the_type ){
1260 +  
1261 +      case STRING:
1262 +        the_event->err_msg =
1263 +          strdup( "Global error. zcons_fixtime is not a double or int.\n" );
1264 +        return 0;
1265 +        break;
1266 +  
1267 +      case DOUBLE:
1268 +        zcons_fixtime= the_event->evt.asmt.rhs.dval;
1269 +        have_zcons_fixtime= 1;
1270 +        return 1;
1271 +        break;
1272 +  
1273 +      case INT:
1274 +        zcons_fixtime= (double)the_event->evt.asmt.rhs.ival;
1275 +        have_zcons_fixtime= 1;
1276 +        return 1;
1277 +        break;
1278 +  
1279 +      default:
1280 +        the_event->err_msg =
1281 +          strdup( "Global error. zcons_fixtime unrecognized.\n" );
1282 +        return 0;
1283 +        break;
1284 +      }
1285 +      break;
1286 +
1287 +    case G_ZCONSUSINGSMD:
1288 +      switch( the_type ){
1289 +  
1290 +      case STRING:
1291 +        the_event->err_msg =
1292 +          strdup( "Global error. zcons_fixtime is not an  int.\n" );
1293 +        return 0;
1294 +        break;
1295 +  
1296 +      case DOUBLE:
1297 +        the_event->err_msg =
1298 +          strdup( "Global error. zcons_fixtime is not an  int.\n" );
1299 +        return 0;
1300 +        break;
1301 +  
1302 +      case INT:
1303 +        zcons_using_smd= the_event->evt.asmt.rhs.ival;
1304 +        have_zcons_using_smd= 1;
1305 +        return 1;
1306 +        break;
1307 +  
1308 +      default:
1309 +        the_event->err_msg =
1310 +          strdup( "Global error. zcons_usingsmd unrecognized.\n" );
1311 +        return 0;
1312 +        break;
1313 +      }
1314 +      break;
1315 +      
1316 +    case G_MINIMIZER:
1317 +      switch( the_type ){
1318 +
1319 +      case STRING:
1320 +        strcpy(minimizer_name, the_event->evt.asmt.rhs.sval);
1321 +
1322 +        for(int i = 0; zconsForcePolicy[i] != '\0'; i++){
1323 +          zconsForcePolicy[i] = toupper(zconsForcePolicy[i]);
1324 +        }
1325 +        have_minimizer= 1;
1326 +        return 1;
1327 +        break;
1328 +        
1329 +      case DOUBLE:
1330 +        the_event->err_msg =
1331 +          strdup( "Global error. minimizer_name is not a double or int.\n" );
1332 +        return 0;
1333 +        break;
1334 +        
1335 +      case INT:
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 +      default:
1342 +        the_event->err_msg =
1343 +          strdup( "Global error. minimizer_name unrecognized.\n" );
1344 +        return 0;
1345 +        break;
1346 +      }
1347 +      break;
1348 +
1349 +    case G_MIN_MAXITER:
1350 +      switch( the_type ){
1351 +
1352 +      case STRING:
1353 +        the_event->err_msg =
1354 +          strdup( "Global error. minimizer_maxiteration is not a double or int.\n" );
1355 +        return 1;
1356 +        break;
1357 +        
1358 +      case DOUBLE:
1359 +        minimizer_maxiteration = the_event->evt.asmt.rhs.dval;
1360 +        have_minimizer_maxiteration = 1;
1361 +        return 1;
1362 +        break;
1363 +        
1364 +      case INT:
1365 +        minimizer_maxiteration = the_event->evt.asmt.rhs.ival;
1366 +        have_minimizer_maxiteration = 1;
1367 +        return 1;
1368 +        break;
1369 +        
1370 +      default:
1371 +        the_event->err_msg =
1372 +          strdup( "Global error. minimizer_maxiteration unrecognized.\n" );
1373 +        return 0;
1374 +        break;
1375 +      }
1376 +      break;
1377 +      
1378 +    case G_MIN_WRITEFRQ:
1379 +      switch( the_type ){
1380 +
1381 +      case STRING:
1382 +        the_event->err_msg =
1383 +          strdup( "Global error. minimizer_writefrq is not a double or int.\n" );
1384 +        return 1;
1385 +        break;
1386 +        
1387 +      case DOUBLE:
1388 +        minimizer_writefrq= the_event->evt.asmt.rhs.dval;
1389 +        have_minimizer_writefrq = 1;
1390 +        return 1;
1391 +        break;
1392 +        
1393 +      case INT:
1394 +        minimizer_writefrq= the_event->evt.asmt.rhs.ival;
1395 +        have_minimizer_writefrq = 1;
1396 +        return 1;
1397 +        break;
1398 +        
1399 +      default:
1400 +        the_event->err_msg =
1401 +          strdup( "Global error. minimizer_writefrq unrecognized.\n" );
1402 +        return 0;
1403 +        break;
1404 +      }
1405 +      break;
1406 +
1407 +    case G_MIN_STEPSIZE:
1408 +      switch( the_type ){
1409 +
1410 +      case STRING:
1411 +        the_event->err_msg =
1412 +          strdup( "Global error. minimizer_resetfrq is not a double or int.\n" );
1413 +        return 1;
1414 +        break;
1415 +        
1416 +      case DOUBLE:
1417 +        minimizer_stepsize= the_event->evt.asmt.rhs.dval;
1418 +        have_minimizer_stepsize = 1;
1419 +        return 1;
1420 +        break;
1421 +        
1422 +      case INT:
1423 +        minimizer_stepsize= the_event->evt.asmt.rhs.ival;
1424 +        have_minimizer_stepsize = 1;
1425 +        return 1;
1426 +        break;
1427 +        
1428 +      default:
1429 +        the_event->err_msg =
1430 +          strdup( "Global error. minimizer_resetfrq unrecognized.\n" );
1431 +        return 0;
1432 +        break;
1433 +      }
1434 +      break;      
1435 +
1436 +    case G_MIN_FTOL:
1437 +      switch( the_type ){
1438 +
1439 +      case STRING:
1440 +        the_event->err_msg =
1441 +          strdup( "Global error. minimizer_ftol is not a double or int.\n" );
1442 +        return 1;
1443 +        break;
1444 +        
1445 +      case DOUBLE:
1446 +        minimizer_ftol= the_event->evt.asmt.rhs.dval;
1447 +        have_minimizer_ftol = 1;
1448 +        return 1;
1449 +        break;
1450 +        
1451 +      case INT:
1452 +        minimizer_ftol= the_event->evt.asmt.rhs.ival;
1453 +        have_minimizer_ftol = 1;
1454 +        return 1;
1455 +        break;
1456 +        
1457 +      default:
1458 +        the_event->err_msg =
1459 +          strdup( "Global error. minimizer_ftol unrecognized.\n" );
1460 +        return 0;
1461 +        break;
1462 +      }
1463 +      break;
1464 +      
1465 +    case G_MIN_GTOL:
1466 +      switch( the_type ){
1467 +
1468 +      case STRING:
1469 +        the_event->err_msg =
1470 +          strdup( "Global error. minimizer_gtol is not a double or int.\n" );
1471 +        return 1;
1472 +        break;
1473 +        
1474 +      case DOUBLE:
1475 +        minimizer_gtol= the_event->evt.asmt.rhs.dval;
1476 +        have_minimizer_gtol = 1;
1477 +        return 1;
1478 +        break;
1479 +        
1480 +      case INT:
1481 +        minimizer_gtol= the_event->evt.asmt.rhs.ival;
1482 +        have_minimizer_gtol = 1;
1483 +        return 1;
1484 +        break;
1485 +        
1486 +      default:
1487 +        the_event->err_msg =
1488 +          strdup( "Global error. minimizer_gtol unrecognized.\n" );
1489 +        return 0;
1490 +        break;
1491 +      }
1492 +      break;
1493 +      
1494 +    case G_MIN_LSMAXITER:
1495 +      switch( the_type ){
1496 +
1497 +      case STRING:
1498 +        the_event->err_msg =
1499 +          strdup( "Global error. minimizer_ls_maxiteration is not a double or int.\n" );
1500 +        return 1;
1501 +        break;
1502 +        
1503 +      case DOUBLE:
1504 +        minimizer_ls_maxiteration = the_event->evt.asmt.rhs.dval;
1505 +        have_minimizer_ls_maxiteration = 1;
1506 +        return 1;
1507 +        break;
1508 +        
1509 +      case INT:
1510 +        minimizer_ls_maxiteration = the_event->evt.asmt.rhs.ival;
1511 +        have_minimizer_ls_maxiteration = 1;
1512 +        return 1;
1513 +        break;
1514 +        
1515 +      default:
1516 +        the_event->err_msg =
1517 +          strdup( "Global error. minimizer_ls_maxiteration unrecognized.\n" );
1518 +        return 0;
1519 +        break;
1520 +      }
1521 +      break;      
1522 +
1523 +    case G_MIN_LSTOL:
1524 +      switch( the_type ){
1525 +
1526 +      case STRING:
1527 +        the_event->err_msg =
1528 +          strdup( "Global error. minimizer_ls_tol is not a double or int.\n" );
1529 +        return 1;
1530 +        break;
1531 +        
1532 +      case DOUBLE:
1533 +        minimizer_ls_tol= the_event->evt.asmt.rhs.dval;
1534 +        have_minimizer_ls_tol = 1;
1535 +        return 1;
1536 +        break;
1537 +        
1538 +      case INT:
1539 +        minimizer_ls_tol= the_event->evt.asmt.rhs.ival;
1540 +        have_minimizer_ls_tol = 1;
1541 +        return 1;
1542 +        break;
1543 +        
1544 +      default:
1545 +        the_event->err_msg =
1546 +          strdup( "Global error. minimizer_ls_tol unrecognized.\n" );
1547 +        return 0;
1548 +        break;
1549 +      }
1550 +      break;
1551 +      
1552        // add more token cases here.
1553      case G_SEED:
1554        switch( the_type ){
# Line 1249 | Line 1579 | int Globals::globalAssign( event* the_event ){
1579          break;
1580        }
1581        break;
1582 +
1583 +    case G_USE_THERM_INT:
1584 +      if( the_type == STRING ){
1585 +        
1586 +        if( !strcasecmp( "true", the_event->evt.asmt.rhs.sval )) useThermInt = 1;
1587 +        else if( !strcasecmp( "false", the_event->evt.asmt.rhs.sval )) useThermInt = 0;
1588 +        else{
1589 +          the_event->err_msg =
1590 +            strdup( "Global error. useThermInt was not \"true\" or \"false\".\n" );
1591 +          return 0;
1592 +        }
1593 +        return 1;
1594 +      }
1595 +      
1596 +      the_event->err_msg =
1597 +        strdup( "Global error. useThermInt was not \"true\" or \"false\".\n" );
1598 +      return 0;
1599 +      break;
1600 +
1601 +    case G_THERM_INT_LAMBDA:
1602 +      switch( the_type ){
1603 +        
1604 +      case STRING:
1605 +        the_event->err_msg =
1606 +          strdup( "Global error. thermodynamicIntegrationLambda is not a double or int.\n" );
1607 +        return 1;
1608 +        break;
1609 +        
1610 +      case DOUBLE:
1611 +        thermodynamic_integration_lambda = the_event->evt.asmt.rhs.dval;
1612 +        have_thermodynamic_integration_lambda = 1;
1613 +        return 1;
1614 +        break;
1615 +        
1616 +      case INT:
1617 +        thermodynamic_integration_lambda = (double)the_event->evt.asmt.rhs.dval;
1618 +        have_thermodynamic_integration_lambda = 1;
1619 +        return 1;
1620 +        break;
1621 +        
1622 +      default:
1623 +        the_event->err_msg =
1624 +          strdup( "Global error. thermodynamicIntegrationLambda unrecognized.\n" );
1625 +        return 0;
1626 +        break;
1627 +      }
1628 +      break;      
1629 +
1630 +    case G_THERM_INT_K:
1631 +      switch( the_type ){
1632 +        
1633 +      case STRING:
1634 +        the_event->err_msg =
1635 +          strdup( "Global error. thermodynamicIntegrationK is not a double or int.\n" );
1636 +        return 1;
1637 +        break;
1638 +        
1639 +      case DOUBLE:
1640 +        thermodynamic_integration_k = the_event->evt.asmt.rhs.dval;
1641 +        have_thermodynamic_integration_k = 1;
1642 +        return 1;
1643 +        break;
1644 +        
1645 +      case INT:
1646 +        thermodynamic_integration_k = (double)the_event->evt.asmt.rhs.dval;
1647 +        have_thermodynamic_integration_k = 1;
1648 +        return 1;
1649 +        break;
1650 +        
1651 +      default:
1652 +        the_event->err_msg =
1653 +          strdup( "Global error. thermodynamicIntegrationK unrecognized.\n" );
1654 +        return 0;
1655 +        break;
1656 +      }
1657 +      break;      
1658        // add more token cases here.
1659  
1660      }
# Line 1311 | Line 1717 | char* Globals::checkMe( void ){
1717      have_err= 1;
1718    }
1719    
1720 <  if( !have_ensemble ){
1721 <    strcat( err, "\t->ensemble\n" );
1722 <    have_err= 1;
1723 <  }
1720 >  if(!have_minimizer)
1721 >    if( !have_ensemble ){
1722 >      strcat( err, "\t->ensemble\n" );
1723 >      have_err= 1;
1724 >    }
1725    
1726    if( !have_dt ){
1727      strcat( err, "\t->dt\n" );

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines