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 811 by mmeineke, Tue Oct 21 19:33:19 2003 UTC vs.
Revision 1066 by tim, Tue Feb 24 16:36:33 2004 UTC

# Line 1 | Line 1
1 < #include <cstdlib>
2 < #include <cstdio>
3 < #include <cstring>
1 > #include <stdlib.h>
2 > #include <stdio.h>
3 > #include <string.h>
4  
5   #include "Globals.hpp"
6   #include "simError.h"
# 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
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
57 > #define G_ORTHOBOXTOLERANCE 36
58 > #define G_LJRCUT            37
59 > #define G_MINIMIZER 38
60 > #define G_MIN_MAXITER 39
61 > #define G_MIN_WRITEFRQ 40
62 > #define G_MIN_STEPSIZE 41
63 > #define G_MIN_FTOL 42
64 > #define G_MIN_GTOL 43
65 > #define G_MIN_LSTOL 44
66 > #define G_MIN_LSMAXITER 45
67  
68 +
69   Globals::Globals(){
70    
71    int i;
# Line 101 | Line 113 | Globals::Globals(){
113    addHash( "zconsTol",                             G_ZCONSTOL);
114    addHash( "zconsForcePolicy",                     G_ZCONSFORCEPOLICY);
115    addHash( "seed",                                 G_SEED);
116 <  addHash( "useInitTime",                          G_USEINITTIME),
117 <        
118 <        
119 <  // define some default values
116 >  addHash( "useInitialTime",                       G_USEINITTIME);
117 >  addHash( "useInitialExtendedSystemState",        G_USEINIT_XS_STATE);
118 >  addHash( "orthoBoxTolerance",                    G_ORTHOBOXTOLERANCE);
119 >  addHash( "LJrcut",                               G_LJRCUT);
120 >  addHash( "minimizer", G_MINIMIZER);
121 >  addHash( "minMaxIter", G_MIN_MAXITER);
122 >  addHash( "minWriteFrq", G_MIN_WRITEFRQ);
123 >  addHash( "minStepSize", G_MIN_STEPSIZE);
124 >  addHash( "minFTol", G_MIN_FTOL);
125 >  addHash( "minGTol", G_MIN_GTOL);
126 >  addHash( "minLSTol", G_MIN_LSTOL);
127 >  addHash( "minLSMaxIter", G_MIN_LSMAXITER);
128 >  
129  
130    strcpy( mixingRule,"standard");  //default mixing rules to standard.
131    usePBC = 1; //default  periodic boundry conditions to on
132    useRF  = 0;
133    useInitTime = 1; // default to pull init time from the init file
134 <  
134 >  useInitXSstate = 1; // default to pull the extended state from the init file
135 >  orthoBoxTolerance = 1E-6;
136 >
137    have_force_field =  0;
138    have_n_components = 0;
139    have_target_temp =  0;
# Line 144 | Line 167 | Globals::Globals(){
167    have_zConstraints   = 0;
168    have_zcons_tol = 0;
169    have_seed = 0;
170 +  have_ljrcut = 0;
171  
172   }
173  
# Line 393 | Line 417 | int Globals::globalAssign( event* the_event ){
417        default:
418          the_event->err_msg =
419            strdup( "Global error. targetTemp unrecognized.\n" );
420 +        return 0;
421 +        break;
422 +      }
423 +      break;
424 +
425 +    case G_ORTHOBOXTOLERANCE:
426 +      switch( the_type ){
427 +        
428 +      case STRING:
429 +        the_event->err_msg =
430 +          strdup( "Global error. orthoBoxTolerance is not a double or int.\n" );
431 +        return 0;
432 +        break;
433 +        
434 +      case DOUBLE:
435 +        orthoBoxTolerance = the_event->evt.asmt.rhs.dval;
436 +        have_target_temp = 1;
437 +        return 1;
438 +        break;
439 +        
440 +      case INT:
441 +        orthoBoxTolerance = (double)the_event->evt.asmt.rhs.ival;
442 +        have_target_temp = 1;
443 +        return 1;
444 +        break;
445 +        
446 +      default:
447 +        the_event->err_msg =
448 +          strdup( "Global error.orthoBoxTolerance unrecognized.\n" );
449          return 0;
450          break;
451        }
# Line 788 | Line 841 | int Globals::globalAssign( event* the_event ){
841        default:
842          the_event->err_msg =
843            strdup( "Global error. thermalTime unrecognized.\n" );
844 +        return 0;
845 +        break;
846 +      }
847 +      break;
848 +
849 +    case G_LJRCUT:
850 +      switch( the_type ){
851 +        
852 +      case STRING:
853 +        the_event->err_msg =
854 +          strdup( "Global error. LJrcut is not a double or int.\n" );
855 +        return 0;
856 +        break;
857 +        
858 +      case DOUBLE:
859 +        LJrcut = the_event->evt.asmt.rhs.dval;
860 +        have_ljrcut = 1;
861 +        return 1;
862 +        break;
863 +        
864 +      case INT:
865 +        LJrcut = (double)the_event->evt.asmt.rhs.ival;
866 +        have_ljrcut = 1;
867 +        return 1;
868 +        break;
869 +        
870 +      default:
871 +        the_event->err_msg =
872 +          strdup( "Global error. LJrcut unrecognized.\n" );
873          return 0;
874          break;
875        }
# Line 914 | Line 996 | int Globals::globalAssign( event* the_event ){
996        
997        the_event->err_msg =
998          strdup( "Global error. useInitTime was not \"true\" or \"false\".\n" );
999 +      return 0;
1000 +      break;
1001 +
1002 +    case G_USEINIT_XS_STATE:
1003 +      if( the_type == STRING ){
1004 +        
1005 +        if( !strcasecmp( "true", the_event->evt.asmt.rhs.sval ))
1006 +          useInitXSstate = 1;
1007 +        else if( !strcasecmp( "false", the_event->evt.asmt.rhs.sval ))
1008 +          useInitXSstate = 0;
1009 +        else{
1010 +          the_event->err_msg =
1011 +            strdup( "Global error. useInitExtendedSystemState was not \"true\" or \"false\".\n" );
1012 +          return 0;
1013 +        }
1014 +        return 1;
1015 +      }
1016 +      
1017 +      the_event->err_msg =
1018 +        strdup( "Global error. useInitExtendedSystemState was not \"true\" or \"false\".\n" );
1019        return 0;
1020        break;
1021        
# Line 1131 | Line 1233 | int Globals::globalAssign( event* the_event ){
1233          break;
1234        }
1235        break;
1236 +
1237 +    case G_MINIMIZER:
1238 +      switch( the_type ){
1239 +
1240 +      case STRING:
1241 +        strcpy(minimizer_name, the_event->evt.asmt.rhs.sval);
1242 +
1243 +        for(int i = 0; zconsForcePolicy[i] != '\0'; i++){
1244 +          zconsForcePolicy[i] = toupper(zconsForcePolicy[i]);
1245 +        }
1246 +        have_minimizer= 1;
1247 +        return 1;
1248 +        break;
1249 +        
1250 +      case DOUBLE:
1251 +        the_event->err_msg =
1252 +          strdup( "Global error. minimizer_name is not a double or int.\n" );
1253 +        return 0;
1254 +        break;
1255 +        
1256 +      case INT:
1257 +        the_event->err_msg =
1258 +          strdup( "Global error. minimizer_name is not a double or int.\n" );
1259 +        return 0;
1260 +        break;
1261 +        
1262 +      default:
1263 +        the_event->err_msg =
1264 +          strdup( "Global error. minimizer_name unrecognized.\n" );
1265 +        return 0;
1266 +        break;
1267 +      }
1268 +      break;
1269 +
1270 +    case G_MIN_MAXITER:
1271 +      switch( the_type ){
1272 +
1273 +      case STRING:
1274 +        the_event->err_msg =
1275 +          strdup( "Global error. minimizer_maxiteration is not a double or int.\n" );
1276 +        return 1;
1277 +        break;
1278 +        
1279 +      case DOUBLE:
1280 +        minimizer_maxiteration = the_event->evt.asmt.rhs.dval;
1281 +        have_minimizer_maxiteration = 1;
1282 +        return 1;
1283 +        break;
1284 +        
1285 +      case INT:
1286 +        minimizer_maxiteration = the_event->evt.asmt.rhs.ival;
1287 +        have_minimizer_maxiteration = 1;
1288 +        return 1;
1289 +        break;
1290 +        
1291 +      default:
1292 +        the_event->err_msg =
1293 +          strdup( "Global error. minimizer_maxiteration unrecognized.\n" );
1294 +        return 0;
1295 +        break;
1296 +      }
1297 +      break;
1298 +      
1299 +    case G_MIN_WRITEFRQ:
1300 +      switch( the_type ){
1301 +
1302 +      case STRING:
1303 +        the_event->err_msg =
1304 +          strdup( "Global error. minimizer_writefrq is not a double or int.\n" );
1305 +        return 1;
1306 +        break;
1307 +        
1308 +      case DOUBLE:
1309 +        minimizer_writefrq= the_event->evt.asmt.rhs.dval;
1310 +        have_minimizer_writefrq = 1;
1311 +        return 1;
1312 +        break;
1313 +        
1314 +      case INT:
1315 +        minimizer_writefrq= the_event->evt.asmt.rhs.ival;
1316 +        have_minimizer_writefrq = 1;
1317 +        return 1;
1318 +        break;
1319 +        
1320 +      default:
1321 +        the_event->err_msg =
1322 +          strdup( "Global error. minimizer_writefrq unrecognized.\n" );
1323 +        return 0;
1324 +        break;
1325 +      }
1326 +      break;
1327 +
1328 +    case G_MIN_STEPSIZE:
1329 +      switch( the_type ){
1330 +
1331 +      case STRING:
1332 +        the_event->err_msg =
1333 +          strdup( "Global error. minimizer_resetfrq is not a double or int.\n" );
1334 +        return 1;
1335 +        break;
1336 +        
1337 +      case DOUBLE:
1338 +        minimizer_stepsize= the_event->evt.asmt.rhs.dval;
1339 +        have_minimizer_stepsize = 1;
1340 +        return 1;
1341 +        break;
1342 +        
1343 +      case INT:
1344 +        minimizer_stepsize= the_event->evt.asmt.rhs.ival;
1345 +        have_minimizer_stepsize = 1;
1346 +        return 1;
1347 +        break;
1348 +        
1349 +      default:
1350 +        the_event->err_msg =
1351 +          strdup( "Global error. minimizer_resetfrq unrecognized.\n" );
1352 +        return 0;
1353 +        break;
1354 +      }
1355 +      break;      
1356 +
1357 +    case G_MIN_FTOL:
1358 +      switch( the_type ){
1359 +
1360 +      case STRING:
1361 +        the_event->err_msg =
1362 +          strdup( "Global error. minimizer_ftol is not a double or int.\n" );
1363 +        return 1;
1364 +        break;
1365 +        
1366 +      case DOUBLE:
1367 +        minimizer_ftol= the_event->evt.asmt.rhs.dval;
1368 +        have_minimizer_ftol = 1;
1369 +        return 1;
1370 +        break;
1371 +        
1372 +      case INT:
1373 +        minimizer_ftol= the_event->evt.asmt.rhs.ival;
1374 +        have_minimizer_ftol = 1;
1375 +        return 1;
1376 +        break;
1377 +        
1378 +      default:
1379 +        the_event->err_msg =
1380 +          strdup( "Global error. minimizer_ftol unrecognized.\n" );
1381 +        return 0;
1382 +        break;
1383 +      }
1384 +      break;
1385 +      
1386 +    case G_MIN_GTOL:
1387 +      switch( the_type ){
1388 +
1389 +      case STRING:
1390 +        the_event->err_msg =
1391 +          strdup( "Global error. minimizer_gtol is not a double or int.\n" );
1392 +        return 1;
1393 +        break;
1394 +        
1395 +      case DOUBLE:
1396 +        minimizer_gtol= the_event->evt.asmt.rhs.dval;
1397 +        have_minimizer_gtol = 1;
1398 +        return 1;
1399 +        break;
1400 +        
1401 +      case INT:
1402 +        minimizer_gtol= the_event->evt.asmt.rhs.ival;
1403 +        have_minimizer_gtol = 1;
1404 +        return 1;
1405 +        break;
1406 +        
1407 +      default:
1408 +        the_event->err_msg =
1409 +          strdup( "Global error. minimizer_gtol unrecognized.\n" );
1410 +        return 0;
1411 +        break;
1412 +      }
1413 +      break;
1414 +      
1415 +    case G_MIN_LSMAXITER:
1416 +      switch( the_type ){
1417 +
1418 +      case STRING:
1419 +        the_event->err_msg =
1420 +          strdup( "Global error. minimizer_ls_maxiteration is not a double or int.\n" );
1421 +        return 1;
1422 +        break;
1423 +        
1424 +      case DOUBLE:
1425 +        minimizer_ls_maxiteration = the_event->evt.asmt.rhs.dval;
1426 +        have_minimizer_ls_maxiteration = 1;
1427 +        return 1;
1428 +        break;
1429 +        
1430 +      case INT:
1431 +        minimizer_ls_maxiteration = the_event->evt.asmt.rhs.ival;
1432 +        have_minimizer_ls_maxiteration = 1;
1433 +        return 1;
1434 +        break;
1435 +        
1436 +      default:
1437 +        the_event->err_msg =
1438 +          strdup( "Global error. minimizer_ls_maxiteration unrecognized.\n" );
1439 +        return 0;
1440 +        break;
1441 +      }
1442 +      break;      
1443 +
1444 +    case G_MIN_LSTOL:
1445 +      switch( the_type ){
1446 +
1447 +      case STRING:
1448 +        the_event->err_msg =
1449 +          strdup( "Global error. minimizer_ls_tol is not a double or int.\n" );
1450 +        return 1;
1451 +        break;
1452 +        
1453 +      case DOUBLE:
1454 +        minimizer_ls_tol= the_event->evt.asmt.rhs.dval;
1455 +        have_minimizer_ls_tol = 1;
1456 +        return 1;
1457 +        break;
1458 +        
1459 +      case INT:
1460 +        minimizer_ls_tol= the_event->evt.asmt.rhs.ival;
1461 +        have_minimizer_ls_tol = 1;
1462 +        return 1;
1463 +        break;
1464 +        
1465 +      default:
1466 +        the_event->err_msg =
1467 +          strdup( "Global error. minimizer_ls_tol unrecognized.\n" );
1468 +        return 0;
1469 +        break;
1470 +      }
1471 +      break;
1472 +      
1473        // add more token cases here.
1474      case G_SEED:
1475        switch( the_type ){
# Line 1222 | Line 1561 | char* Globals::checkMe( void ){
1561      strcat( err, "\t->targetTemp\n" );
1562      have_err= 1;
1563    }
1564 +
1565    
1566 <  if( !have_ensemble ){
1567 <    strcat( err, "\t->ensemble\n" );
1568 <    have_err= 1;
1569 <  }
1566 >  if(!have_minimizer)
1567 >    if( !have_ensemble ){
1568 >      strcat( err, "\t->ensemble\n" );
1569 >      have_err= 1;
1570 >    }
1571    
1572    if( !have_dt ){
1573      strcat( err, "\t->dt\n" );

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines