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 655 by mmeineke, Tue Jul 29 16:32:06 2003 UTC vs.
Revision 1137 by gezelter, Wed Apr 28 21:39:12 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
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 > #define G_ZCONSGAP 46
68 > #define G_ZCONSFIXTIME 47
69 > #define G_ZCONSUSINGSMD 48
70 > #define G_USEMOLECULARCUTOFFS 49
71  
50
72   Globals::Globals(){
73    
74    int i;
75 +
76 +  hash_size = 23;
77 +  hash_shift = 4;
78    
79    components = NULL;
80    
# Line 74 | Line 98 | Globals::Globals(){
98    addHash( "boxY",          G_BOXY );
99    addHash( "boxZ",          G_BOXZ );
100    addHash( "sampleTime",    G_SAMPLETIME );
101 +  addHash( "resetTime",     G_RESETTIME );
102    addHash( "statusTime",    G_STATUSTIME );
103    addHash( "electrostaticCutoffRadius",            G_ECR );
104    addHash( "dielectric",    G_DIELECTRIC );
# Line 86 | Line 111 | Globals::Globals(){
111    addHash( "targetPressure",                       G_TARGETPRESSURE);
112    addHash( "tauThermostat",                        G_TAUTHERMOSTAT);
113    addHash( "tauBarostat",                          G_TAUBAROSTAT);
114 <  
115 <  // define some default values
114 >  addHash( "zconsTime",                            G_ZCONSTIME);
115 >  addHash( "nZconstraints",                        G_NZCONSTRAINTS);
116 >  addHash( "zconsTol",                             G_ZCONSTOL);
117 >  addHash( "zconsForcePolicy",                     G_ZCONSFORCEPOLICY);
118 >  addHash( "seed",                                 G_SEED);
119 >  addHash( "useInitialTime",                       G_USEINITTIME);
120 >  addHash( "useInitialExtendedSystemState",        G_USEINIT_XS_STATE);
121 >  addHash( "orthoBoxTolerance",                    G_ORTHOBOXTOLERANCE);
122 >  addHash( "LJrcut",                               G_LJRCUT);
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( "useMolecularCutoffs", G_USEMOLECULARCUTOFFS);
135  
136    strcpy( mixingRule,"standard");  //default mixing rules to standard.
137    usePBC = 1; //default  periodic boundry conditions to on
138    useRF  = 0;
139 <  
139 >  useMolecularCutoffs = 0;
140 >  useInitTime = 0; // default to pull init time from the init file
141 >  useInitXSstate = 0; // default to pull the extended state from the init file
142 >  orthoBoxTolerance = 1E-6;
143 >
144    have_force_field =  0;
145    have_n_components = 0;
146    have_target_temp =  0;
# Line 111 | Line 159 | Globals::Globals(){
159    have_box_z =          0;
160    have_sample_time =    0;
161    have_status_time =    0;
162 +  have_reset_time =     0;
163    have_thermal_time =   0;
164    have_ecr =            0;
165    have_dielectric =     0;
# Line 119 | Line 168 | Globals::Globals(){
168    have_target_pressure =0;
169    have_q_mass =         0;
170    have_tau_thermostat = 0;
171 <  have_tau_barostat =   0;
172 < }
171 >  have_tau_barostat   = 0;
172 >  have_zcons_time     = 0;
173 >  have_n_zConstraints = 0;
174 >  have_zConstraints   = 0;
175 >  have_zcons_tol = 0;
176 >  have_zcons_gap = 0;
177 >  have_zcons_fixtime = 0;
178 >  have_zcons_using_smd = 0;  
179 >  have_seed = 0;
180 >  have_ljrcut = 0;
181 >  have_minimizer = 0;
182 >  have_minimizer_maxiteration = 0;
183 >  have_minimizer_writefrq = 0;
184 >  have_minimizer_stepsize = 0;
185 >  have_minimizer_ftol = 0;
186 >  have_minimizer_gtol = 0;
187 >  have_minimizer_ls_tol = 0;
188 >  have_minimizer_ls_maxiteration = 0;
189 >  have_use_molecular_cutoffs = 0;
190  
191 + }
192 +
193   Globals::~Globals(){
194    int i;
195  
# Line 194 | Line 262 | int Globals::componentStartIndex( event* the_event ){
262    return 0;
263   }
264  
265 < int Globals::componentStartIndex( event* the_event ){
265 > int Globals::componentEnd( event* the_event ){
266  
267 <  current_component->startIndex( the_event->evt.si.array,
268 <                                 the_event->evt.si.n_elements );
267 >  the_event->err_msg = current_component->checkMe();
268 >  if( the_event->err_msg != NULL ) return 0;
269 >
270    return 1;
271   }
272  
273 < int Globals::componentEnd( event* the_event ){
273 > int Globals::newZconstraint( event* the_event ){
274 >  
275  
276 <  the_event->err_msg = current_component->checkMe();
276 >  int index = the_event->evt.blk_index;
277 >  char err[200];
278 >  current_zConstraint = new ZconStamp( index );
279 >  
280 >  have_zConstraints = 1;
281 >
282 >  if( have_n_zConstraints && index < n_zConstraints )
283 >    zConstraints[index] = current_zConstraint;
284 >  else{
285 >    if( have_n_zConstraints ){
286 >      sprintf( err, "Globals error, %d out of nZconstraints range",
287 >               index );
288 >      the_event->err_msg = strdup( err );
289 >      return 0;
290 >    }
291 >    else{
292 >      the_event->err_msg = strdup("Globals error, nZconstraints"
293 >                                  " not given before"
294 >                                  " first zConstraint declaration." );
295 >      return 0;
296 >    }
297 >  }  
298 >
299 >  return 1;
300 > }
301 >
302 >
303 >
304 > int Globals::zConstraintAssign( event* the_event ){
305 >
306 >  switch( the_event->evt.asmt.asmt_type ){
307 >    
308 >  case STRING:
309 >    return current_zConstraint->assignString( the_event->evt.asmt.lhs,
310 >                                              the_event->evt.asmt.rhs.sval,
311 >                                              &(the_event->err_msg));
312 >    break;
313 >    
314 >  case DOUBLE:
315 >    return current_zConstraint->assignDouble( the_event->evt.asmt.lhs,
316 >                                              the_event->evt.asmt.rhs.dval,
317 >                                              &(the_event->err_msg));
318 >    break;
319 >    
320 >  case INT:
321 >    return current_zConstraint->assignInt( the_event->evt.asmt.lhs,
322 >                                           the_event->evt.asmt.rhs.ival,
323 >                                           &(the_event->err_msg));
324 >    break;
325 >    
326 >  default:
327 >    the_event->err_msg = strdup( "Globals error. Invalid zConstraint"
328 >                                 " assignment type" );
329 >    return 0;
330 >    break;
331 >  }
332 >  return 0;
333 > }
334 >
335 > int Globals::zConstraintEnd( event* the_event ){
336 >
337 >  the_event->err_msg = current_zConstraint->checkMe();
338    if( the_event->err_msg != NULL ) return 0;
339  
340    return 1;
# Line 258 | Line 389 | int Globals::globalAssign( event* the_event ){
389          return 1;
390        }
391        break;
392 +
393 +    case G_NZCONSTRAINTS:
394 +      if( the_type == STRING ){
395 +        the_event->err_msg =
396 +          strdup("Global error. nZconstraints is not a double or an int.\n" );
397 +        return 0;
398 +      }
399        
400 +      else if( the_type == DOUBLE ){
401 +        n_zConstraints = (int)the_event->evt.asmt.rhs.dval;
402 +        zConstraints = new ZconStamp*[n_zConstraints];
403 +        have_n_zConstraints = 1;
404 +        return 1;
405 +      }
406 +      
407 +      else{
408 +        n_zConstraints = the_event->evt.asmt.rhs.ival;
409 +        zConstraints = new ZconStamp*[n_zConstraints];
410 +        have_n_zConstraints = 1;
411 +        return 1;
412 +      }
413 +      break;
414 +      
415      case G_TARGETTEMP:
416        switch( the_type ){
417          
# Line 287 | Line 440 | int Globals::globalAssign( event* the_event ){
440          break;
441        }
442        break;
443 +
444 +    case G_ORTHOBOXTOLERANCE:
445 +      switch( the_type ){
446 +        
447 +      case STRING:
448 +        the_event->err_msg =
449 +          strdup( "Global error. orthoBoxTolerance is not a double or int.\n" );
450 +        return 0;
451 +        break;
452 +        
453 +      case DOUBLE:
454 +        orthoBoxTolerance = the_event->evt.asmt.rhs.dval;
455 +        have_target_temp = 1;
456 +        return 1;
457 +        break;
458 +        
459 +      case INT:
460 +        orthoBoxTolerance = (double)the_event->evt.asmt.rhs.ival;
461 +        have_target_temp = 1;
462 +        return 1;
463 +        break;
464 +        
465 +      default:
466 +        the_event->err_msg =
467 +          strdup( "Global error.orthoBoxTolerance unrecognized.\n" );
468 +        return 0;
469 +        break;
470 +      }
471 +      break;
472        
473      case G_ENSEMBLE:
474        if( the_type == STRING ){
# Line 625 | Line 807 | int Globals::globalAssign( event* the_event ){
807        }
808        break;
809  
810 <   case G_THERMALTIME:
810 >    case G_RESETTIME:
811        switch( the_type ){
812          
813        case STRING:
814          the_event->err_msg =
815 +          strdup( "Global error. resetTime is not a double or int.\n" );
816 +        return 0;
817 +        break;
818 +        
819 +      case DOUBLE:
820 +        resetTime = the_event->evt.asmt.rhs.dval;
821 +        have_reset_time = 1;
822 +        return 1;
823 +        break;
824 +        
825 +      case INT:
826 +        resetTime = (double)the_event->evt.asmt.rhs.ival;
827 +        have_reset_time = 1;
828 +        return 1;
829 +        break;
830 +        
831 +      default:
832 +        the_event->err_msg =
833 +          strdup( "Global error. resetTime unrecognized.\n" );
834 +        return 0;
835 +        break;
836 +      }
837 +      break;
838 +
839 +    case G_THERMALTIME:
840 +      switch( the_type ){
841 +        
842 +      case STRING:
843 +        the_event->err_msg =
844            strdup( "Global error. thermalTime is not a double or int.\n" );
845          return 0;
846          break;
# Line 653 | Line 864 | int Globals::globalAssign( event* the_event ){
864          break;
865        }
866        break;
867 +
868 +    case G_LJRCUT:
869 +      switch( the_type ){
870 +        
871 +      case STRING:
872 +        the_event->err_msg =
873 +          strdup( "Global error. LJrcut is not a double or int.\n" );
874 +        return 0;
875 +        break;
876 +        
877 +      case DOUBLE:
878 +        LJrcut = the_event->evt.asmt.rhs.dval;
879 +        have_ljrcut = 1;
880 +        return 1;
881 +        break;
882 +        
883 +      case INT:
884 +        LJrcut = (double)the_event->evt.asmt.rhs.ival;
885 +        have_ljrcut = 1;
886 +        return 1;
887 +        break;
888 +        
889 +      default:
890 +        the_event->err_msg =
891 +          strdup( "Global error. LJrcut unrecognized.\n" );
892 +        return 0;
893 +        break;
894 +      }
895 +      break;
896        
897      case G_ECR:
898        switch( the_type ){
# Line 759 | Line 999 | int Globals::globalAssign( event* the_event ){
999          strdup( "Global error. tempSet was not \"true\" or \"false\".\n" );
1000        return 0;
1001        break;
1002 +
1003 +    case G_USEINITTIME:
1004 +      if( the_type == STRING ){
1005 +        
1006 +        if( !strcasecmp( "true", the_event->evt.asmt.rhs.sval )) useInitTime = 1;
1007 +        else if( !strcasecmp( "false", the_event->evt.asmt.rhs.sval )) useInitTime = 0;
1008 +        else{
1009 +          the_event->err_msg =
1010 +            strdup( "Global error. useInitTime was not \"true\" or \"false\".\n" );
1011 +          return 0;
1012 +        }
1013 +        return 1;
1014 +      }
1015        
1016 +      the_event->err_msg =
1017 +        strdup( "Global error. useInitTime was not \"true\" or \"false\".\n" );
1018 +      return 0;
1019 +      break;
1020 +
1021 +    case G_USEINIT_XS_STATE:
1022 +      if( the_type == STRING ){
1023 +        
1024 +        if( !strcasecmp( "true", the_event->evt.asmt.rhs.sval ))
1025 +          useInitXSstate = 1;
1026 +        else if( !strcasecmp( "false", the_event->evt.asmt.rhs.sval ))
1027 +          useInitXSstate = 0;
1028 +        else{
1029 +          the_event->err_msg =
1030 +            strdup( "Global error. useInitExtendedSystemState was not \"true\" or \"false\".\n" );
1031 +          return 0;
1032 +        }
1033 +        return 1;
1034 +      }
1035 +      
1036 +      the_event->err_msg =
1037 +        strdup( "Global error. useInitExtendedSystemState was not \"true\" or \"false\".\n" );
1038 +      return 0;
1039 +      break;
1040 +      
1041      case G_USEPBC:
1042        if( the_type == STRING ){
1043          
# Line 796 | Line 1074 | int Globals::globalAssign( event* the_event ){
1074        return 0;
1075        break;
1076  
1077 +    case G_USEMOLECULARCUTOFFS:
1078 +      if( the_type == STRING ){
1079 +        
1080 +        if( !strcasecmp( "true", the_event->evt.asmt.rhs.sval )) useMolecularCutoffs = 1;
1081 +        else if( !strcasecmp( "false", the_event->evt.asmt.rhs.sval )) useMolecularCutoffs = 0;
1082 +        else{
1083 +          the_event->err_msg =
1084 +            strdup( "Global error. useMolecularCutoffs was not \"true\" or \"false\".\n" );
1085 +          return 0;
1086 +        }
1087 +        return 1;
1088 +      }
1089 +      
1090 +      the_event->err_msg =
1091 +        strdup( "Global error. useMolecularCutoffs was not \"true\" or \"false\".\n" );
1092 +      return 0;
1093 +      break;
1094 +
1095      case G_TARGETPRESSURE:
1096        switch( the_type ){
1097          
# Line 882 | Line 1178 | int Globals::globalAssign( event* the_event ){
1178          break;
1179        }
1180        break;
1181 +      
1182 +    case G_ZCONSTIME:
1183 +      switch( the_type ){
1184 +        
1185 +      case STRING:
1186 +        the_event->err_msg =
1187 +          strdup( "Global error. zcons_time is not a double or int.\n" );
1188 +        return 0;
1189 +        break;
1190 +        
1191 +      case DOUBLE:
1192 +        zcons_time = the_event->evt.asmt.rhs.dval;
1193 +        have_zcons_time = 1;
1194 +        return 1;
1195 +        break;
1196 +        
1197 +      case INT:
1198 +        zcons_time = (double)the_event->evt.asmt.rhs.ival;
1199 +        have_zcons_time = 1;
1200 +        return 1;
1201 +        break;
1202 +        
1203 +      default:
1204 +        the_event->err_msg =
1205 +          strdup( "Global error. zcons_time unrecognized.\n" );
1206 +        return 0;
1207 +        break;
1208 +      }
1209 +      break;
1210  
1211 +    case G_ZCONSTOL:
1212 +      switch( the_type ){
1213 +        
1214 +      case STRING:
1215 +        the_event->err_msg =
1216 +          strdup( "Global error. zcons_tol is not a double or int.\n" );
1217 +        return 0;
1218 +        break;
1219 +        
1220 +      case DOUBLE:
1221 +        zcons_tol = the_event->evt.asmt.rhs.dval;
1222 +        have_zcons_tol = 1;
1223 +        return 1;
1224 +        break;
1225 +        
1226 +      case INT:
1227 +        zcons_tol = (double)the_event->evt.asmt.rhs.ival;
1228 +        have_zcons_tol = 1;
1229 +        return 1;
1230 +        break;
1231 +        
1232 +      default:
1233 +        the_event->err_msg =
1234 +          strdup( "Global error. zcons_ol unrecognized.\n" );
1235 +        return 0;
1236 +        break;
1237 +      }
1238 +      break;
1239 +  
1240 +    case G_ZCONSFORCEPOLICY:
1241 +      switch( the_type ){
1242 +        
1243 +      case STRING:
1244 +   strcpy(zconsForcePolicy, the_event->evt.asmt.rhs.sval);
1245 +
1246 +   for(int i = 0; zconsForcePolicy[i] != '\0'; i++)
1247 +        {
1248 +      zconsForcePolicy[i] = toupper(zconsForcePolicy[i]);
1249 +   }
1250 +        have_zcons_force_policy = 1;
1251 +   return 1;
1252 +        break;
1253 +        
1254 +      case DOUBLE:
1255 +        the_event->err_msg =
1256 +          strdup( "Global error. zconsForcePolicy is not a double or int.\n" );
1257 +        return 0;
1258 +        break;
1259 +        
1260 +      case INT:
1261 +        the_event->err_msg =
1262 +          strdup( "Global error. zconsForcePolicy is not a double or int.\n" );
1263 +        return 0;
1264 +        break;
1265 +        
1266 +      default:
1267 +        the_event->err_msg =
1268 +          strdup( "Global error. zconsForcePolicy unrecognized.\n" );
1269 +        return 0;
1270 +        break;
1271 +      }
1272 +      break;
1273 +      
1274 +    case G_ZCONSGAP:
1275 +      switch( the_type ){
1276 +  
1277 +      case STRING:
1278 +        the_event->err_msg =
1279 +          strdup( "Global error. zcons_gap is not a double or int.\n" );
1280 +        return 0;
1281 +        break;
1282 +  
1283 +      case DOUBLE:
1284 +        zcons_gap = the_event->evt.asmt.rhs.dval;
1285 +        have_zcons_gap= 1;
1286 +        return 1;
1287 +        break;
1288 +  
1289 +      case INT:
1290 +        zcons_gap= (double)the_event->evt.asmt.rhs.ival;
1291 +        have_zcons_gap= 1;
1292 +        return 1;
1293 +        break;
1294 +  
1295 +      default:
1296 +        the_event->err_msg =
1297 +          strdup( "Global error. zcons_gap unrecognized.\n" );
1298 +        return 0;
1299 +        break;
1300 +      }
1301 +      break;
1302 +
1303 +    case G_ZCONSFIXTIME:
1304 +      switch( the_type ){
1305 +  
1306 +      case STRING:
1307 +        the_event->err_msg =
1308 +          strdup( "Global error. zcons_fixtime is not a double or int.\n" );
1309 +        return 0;
1310 +        break;
1311 +  
1312 +      case DOUBLE:
1313 +        zcons_fixtime= the_event->evt.asmt.rhs.dval;
1314 +        have_zcons_fixtime= 1;
1315 +        return 1;
1316 +        break;
1317 +  
1318 +      case INT:
1319 +        zcons_fixtime= (double)the_event->evt.asmt.rhs.ival;
1320 +        have_zcons_fixtime= 1;
1321 +        return 1;
1322 +        break;
1323 +  
1324 +      default:
1325 +        the_event->err_msg =
1326 +          strdup( "Global error. zcons_fixtime unrecognized.\n" );
1327 +        return 0;
1328 +        break;
1329 +      }
1330 +      break;
1331 +
1332 +    case G_ZCONSUSINGSMD:
1333 +      switch( the_type ){
1334 +  
1335 +      case STRING:
1336 +        the_event->err_msg =
1337 +          strdup( "Global error. zcons_fixtime is not an  int.\n" );
1338 +        return 0;
1339 +        break;
1340 +  
1341 +      case DOUBLE:
1342 +        the_event->err_msg =
1343 +          strdup( "Global error. zcons_fixtime is not an  int.\n" );
1344 +        return 0;
1345 +        break;
1346 +  
1347 +      case INT:
1348 +        zcons_using_smd= the_event->evt.asmt.rhs.ival;
1349 +        have_zcons_using_smd= 1;
1350 +        return 1;
1351 +        break;
1352 +  
1353 +      default:
1354 +        the_event->err_msg =
1355 +          strdup( "Global error. zcons_usingsmd unrecognized.\n" );
1356 +        return 0;
1357 +        break;
1358 +      }
1359 +      break;
1360 +      
1361 +    case G_MINIMIZER:
1362 +      switch( the_type ){
1363 +
1364 +      case STRING:
1365 +        strcpy(minimizer_name, the_event->evt.asmt.rhs.sval);
1366 +
1367 +        for(int i = 0; zconsForcePolicy[i] != '\0'; i++){
1368 +          zconsForcePolicy[i] = toupper(zconsForcePolicy[i]);
1369 +        }
1370 +        have_minimizer= 1;
1371 +        return 1;
1372 +        break;
1373 +        
1374 +      case DOUBLE:
1375 +        the_event->err_msg =
1376 +          strdup( "Global error. minimizer_name is not a double or int.\n" );
1377 +        return 0;
1378 +        break;
1379 +        
1380 +      case INT:
1381 +        the_event->err_msg =
1382 +          strdup( "Global error. minimizer_name is not a double or int.\n" );
1383 +        return 0;
1384 +        break;
1385 +        
1386 +      default:
1387 +        the_event->err_msg =
1388 +          strdup( "Global error. minimizer_name unrecognized.\n" );
1389 +        return 0;
1390 +        break;
1391 +      }
1392 +      break;
1393 +
1394 +    case G_MIN_MAXITER:
1395 +      switch( the_type ){
1396 +
1397 +      case STRING:
1398 +        the_event->err_msg =
1399 +          strdup( "Global error. minimizer_maxiteration is not a double or int.\n" );
1400 +        return 1;
1401 +        break;
1402 +        
1403 +      case DOUBLE:
1404 +        minimizer_maxiteration = the_event->evt.asmt.rhs.dval;
1405 +        have_minimizer_maxiteration = 1;
1406 +        return 1;
1407 +        break;
1408 +        
1409 +      case INT:
1410 +        minimizer_maxiteration = the_event->evt.asmt.rhs.ival;
1411 +        have_minimizer_maxiteration = 1;
1412 +        return 1;
1413 +        break;
1414 +        
1415 +      default:
1416 +        the_event->err_msg =
1417 +          strdup( "Global error. minimizer_maxiteration unrecognized.\n" );
1418 +        return 0;
1419 +        break;
1420 +      }
1421 +      break;
1422 +      
1423 +    case G_MIN_WRITEFRQ:
1424 +      switch( the_type ){
1425 +
1426 +      case STRING:
1427 +        the_event->err_msg =
1428 +          strdup( "Global error. minimizer_writefrq is not a double or int.\n" );
1429 +        return 1;
1430 +        break;
1431 +        
1432 +      case DOUBLE:
1433 +        minimizer_writefrq= the_event->evt.asmt.rhs.dval;
1434 +        have_minimizer_writefrq = 1;
1435 +        return 1;
1436 +        break;
1437 +        
1438 +      case INT:
1439 +        minimizer_writefrq= the_event->evt.asmt.rhs.ival;
1440 +        have_minimizer_writefrq = 1;
1441 +        return 1;
1442 +        break;
1443 +        
1444 +      default:
1445 +        the_event->err_msg =
1446 +          strdup( "Global error. minimizer_writefrq unrecognized.\n" );
1447 +        return 0;
1448 +        break;
1449 +      }
1450 +      break;
1451  
1452 +    case G_MIN_STEPSIZE:
1453 +      switch( the_type ){
1454 +
1455 +      case STRING:
1456 +        the_event->err_msg =
1457 +          strdup( "Global error. minimizer_resetfrq is not a double or int.\n" );
1458 +        return 1;
1459 +        break;
1460 +        
1461 +      case DOUBLE:
1462 +        minimizer_stepsize= the_event->evt.asmt.rhs.dval;
1463 +        have_minimizer_stepsize = 1;
1464 +        return 1;
1465 +        break;
1466 +        
1467 +      case INT:
1468 +        minimizer_stepsize= the_event->evt.asmt.rhs.ival;
1469 +        have_minimizer_stepsize = 1;
1470 +        return 1;
1471 +        break;
1472 +        
1473 +      default:
1474 +        the_event->err_msg =
1475 +          strdup( "Global error. minimizer_resetfrq unrecognized.\n" );
1476 +        return 0;
1477 +        break;
1478 +      }
1479 +      break;      
1480 +
1481 +    case G_MIN_FTOL:
1482 +      switch( the_type ){
1483 +
1484 +      case STRING:
1485 +        the_event->err_msg =
1486 +          strdup( "Global error. minimizer_ftol is not a double or int.\n" );
1487 +        return 1;
1488 +        break;
1489 +        
1490 +      case DOUBLE:
1491 +        minimizer_ftol= the_event->evt.asmt.rhs.dval;
1492 +        have_minimizer_ftol = 1;
1493 +        return 1;
1494 +        break;
1495 +        
1496 +      case INT:
1497 +        minimizer_ftol= the_event->evt.asmt.rhs.ival;
1498 +        have_minimizer_ftol = 1;
1499 +        return 1;
1500 +        break;
1501 +        
1502 +      default:
1503 +        the_event->err_msg =
1504 +          strdup( "Global error. minimizer_ftol unrecognized.\n" );
1505 +        return 0;
1506 +        break;
1507 +      }
1508 +      break;
1509 +      
1510 +    case G_MIN_GTOL:
1511 +      switch( the_type ){
1512 +
1513 +      case STRING:
1514 +        the_event->err_msg =
1515 +          strdup( "Global error. minimizer_gtol is not a double or int.\n" );
1516 +        return 1;
1517 +        break;
1518 +        
1519 +      case DOUBLE:
1520 +        minimizer_gtol= the_event->evt.asmt.rhs.dval;
1521 +        have_minimizer_gtol = 1;
1522 +        return 1;
1523 +        break;
1524 +        
1525 +      case INT:
1526 +        minimizer_gtol= the_event->evt.asmt.rhs.ival;
1527 +        have_minimizer_gtol = 1;
1528 +        return 1;
1529 +        break;
1530 +        
1531 +      default:
1532 +        the_event->err_msg =
1533 +          strdup( "Global error. minimizer_gtol unrecognized.\n" );
1534 +        return 0;
1535 +        break;
1536 +      }
1537 +      break;
1538 +      
1539 +    case G_MIN_LSMAXITER:
1540 +      switch( the_type ){
1541 +
1542 +      case STRING:
1543 +        the_event->err_msg =
1544 +          strdup( "Global error. minimizer_ls_maxiteration is not a double or int.\n" );
1545 +        return 1;
1546 +        break;
1547 +        
1548 +      case DOUBLE:
1549 +        minimizer_ls_maxiteration = the_event->evt.asmt.rhs.dval;
1550 +        have_minimizer_ls_maxiteration = 1;
1551 +        return 1;
1552 +        break;
1553 +        
1554 +      case INT:
1555 +        minimizer_ls_maxiteration = the_event->evt.asmt.rhs.ival;
1556 +        have_minimizer_ls_maxiteration = 1;
1557 +        return 1;
1558 +        break;
1559 +        
1560 +      default:
1561 +        the_event->err_msg =
1562 +          strdup( "Global error. minimizer_ls_maxiteration unrecognized.\n" );
1563 +        return 0;
1564 +        break;
1565 +      }
1566 +      break;      
1567 +
1568 +    case G_MIN_LSTOL:
1569 +      switch( the_type ){
1570 +
1571 +      case STRING:
1572 +        the_event->err_msg =
1573 +          strdup( "Global error. minimizer_ls_tol is not a double or int.\n" );
1574 +        return 1;
1575 +        break;
1576 +        
1577 +      case DOUBLE:
1578 +        minimizer_ls_tol= the_event->evt.asmt.rhs.dval;
1579 +        have_minimizer_ls_tol = 1;
1580 +        return 1;
1581 +        break;
1582 +        
1583 +      case INT:
1584 +        minimizer_ls_tol= the_event->evt.asmt.rhs.ival;
1585 +        have_minimizer_ls_tol = 1;
1586 +        return 1;
1587 +        break;
1588 +        
1589 +      default:
1590 +        the_event->err_msg =
1591 +          strdup( "Global error. minimizer_ls_tol unrecognized.\n" );
1592 +        return 0;
1593 +        break;
1594 +      }
1595 +      break;
1596 +      
1597        // add more token cases here.
1598 +    case G_SEED:
1599 +      switch( the_type ){
1600 +        
1601 +      case STRING:
1602 +   the_event->err_msg =
1603 +          strdup( "Global error. seed is not a string.\n" );
1604 +        return 0;
1605 +   return 0;
1606 +        break;
1607 +        
1608 +      case DOUBLE:
1609 +   have_seed = 1;
1610 +   seed = (int)the_event->evt.asmt.rhs.dval;
1611 +        return 1;
1612 +        break;
1613 +        
1614 +      case INT:
1615 +   have_seed = 1;
1616 +   seed =  the_event->evt.asmt.rhs.ival ;
1617 +        return 1;
1618 +        break;
1619 +        
1620 +      default:
1621 +        the_event->err_msg =
1622 +          strdup( "Global error. seed unrecognized.\n" );
1623 +        return 0;
1624 +        break;
1625 +      }
1626 +      break;
1627 +      // add more token cases here.
1628  
1629      }
1630    }
# Line 946 | Line 1686 | char* Globals::checkMe( void ){
1686      have_err= 1;
1687    }
1688    
1689 <  if( !have_ensemble ){
1690 <    strcat( err, "\t->ensemble\n" );
1691 <    have_err= 1;
1692 <  }
1689 >  if(!have_minimizer)
1690 >    if( !have_ensemble ){
1691 >      strcat( err, "\t->ensemble\n" );
1692 >      have_err= 1;
1693 >    }
1694    
1695    if( !have_dt ){
1696      strcat( err, "\t->dt\n" );

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines