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 378 by mmeineke, Fri Mar 21 17:42:12 2003 UTC vs.
Revision 1031 by tim, Fri Feb 6 18:58:06 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_RRF           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
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_RESETFRQ 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;
72 +
73 +  hash_size = 23;
74 +  hash_shift = 4;
75    
76    components = NULL;
77    
# Line 69 | Line 95 | Globals::Globals(){
95    addHash( "boxY",          G_BOXY );
96    addHash( "boxZ",          G_BOXZ );
97    addHash( "sampleTime",    G_SAMPLETIME );
98 +  addHash( "resetTime",     G_RESETTIME );
99    addHash( "statusTime",    G_STATUSTIME );
100 <  addHash( "rRF",           G_RRF );
100 >  addHash( "electrostaticCutoffRadius",            G_ECR );
101    addHash( "dielectric",    G_DIELECTRIC );
102    addHash( "tempSet",       G_TEMPSET );
103    addHash( "thermalTime",   G_THERMALTIME );
104    addHash( "mixingRule",    G_MIXINGRULE);
105 <  addHash( "periodicBox",   G_USEPBC);
105 >  addHash( "usePeriodicBoundaryConditions",        G_USEPBC);
106 >  addHash( "electrostaticSkinThickness",           G_EST );
107 >  addHash( "useReactionField",                     G_USERF );
108 >  addHash( "targetPressure",                       G_TARGETPRESSURE);
109 >  addHash( "tauThermostat",                        G_TAUTHERMOSTAT);
110 >  addHash( "tauBarostat",                          G_TAUBAROSTAT);
111 >  addHash( "zconsTime",                            G_ZCONSTIME);
112 >  addHash( "nZconstraints",                        G_NZCONSTRAINTS);
113 >  addHash( "zconsTol",                             G_ZCONSTOL);
114 >  addHash( "zconsForcePolicy",                     G_ZCONSFORCEPOLICY);
115 >  addHash( "seed",                                 G_SEED);
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( "minResetFrq", G_MIN_RESETFRQ);
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    
80  // define some default values
129  
130    strcpy( mixingRule,"standard");  //default mixing rules to standard.
131    usePBC = 1; //default  periodic boundry conditions to on
132 <  
132 >  useRF  = 0;
133 >  useInitTime = 1; // default to pull init time from the init file
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;
# Line 101 | Line 152 | Globals::Globals(){
152    have_box_z =          0;
153    have_sample_time =    0;
154    have_status_time =    0;
155 +  have_reset_time =     0;
156    have_thermal_time =   0;
157 <  have_rrf =            0;
157 >  have_ecr =            0;
158    have_dielectric =     0;
159    have_tempSet =        0;
160 < }
160 >  have_est =            0;
161 >  have_target_pressure =0;
162 >  have_q_mass =         0;
163 >  have_tau_thermostat = 0;
164 >  have_tau_barostat   = 0;
165 >  have_zcons_time     = 0;
166 >  have_n_zConstraints = 0;
167 >  have_zConstraints   = 0;
168 >  have_zcons_tol = 0;
169 >  have_seed = 0;
170 >  have_ljrcut = 0;
171  
172 + }
173 +
174   Globals::~Globals(){
175    int i;
176  
# Line 179 | Line 243 | int Globals::componentStartIndex( event* the_event ){
243    return 0;
244   }
245  
246 < int Globals::componentStartIndex( event* the_event ){
246 > int Globals::componentEnd( event* the_event ){
247  
248 <  current_component->startIndex( the_event->evt.si.array,
249 <                                 the_event->evt.si.n_elements );
248 >  the_event->err_msg = current_component->checkMe();
249 >  if( the_event->err_msg != NULL ) return 0;
250 >
251    return 1;
252   }
253  
254 < int Globals::componentEnd( event* the_event ){
254 > int Globals::newZconstraint( event* the_event ){
255 >  
256  
257 <  the_event->err_msg = current_component->checkMe();
257 >  int index = the_event->evt.blk_index;
258 >  char err[200];
259 >  current_zConstraint = new ZconStamp( index );
260 >  
261 >  have_zConstraints = 1;
262 >
263 >  if( have_n_zConstraints && index < n_zConstraints )
264 >    zConstraints[index] = current_zConstraint;
265 >  else{
266 >    if( have_n_zConstraints ){
267 >      sprintf( err, "Globals error, %d out of nZconstraints range",
268 >               index );
269 >      the_event->err_msg = strdup( err );
270 >      return 0;
271 >    }
272 >    else{
273 >      the_event->err_msg = strdup("Globals error, nZconstraints"
274 >                                  " not given before"
275 >                                  " first zConstraint declaration." );
276 >      return 0;
277 >    }
278 >  }  
279 >
280 >  return 1;
281 > }
282 >
283 >
284 >
285 > int Globals::zConstraintAssign( event* the_event ){
286 >
287 >  switch( the_event->evt.asmt.asmt_type ){
288 >    
289 >  case STRING:
290 >    return current_zConstraint->assignString( the_event->evt.asmt.lhs,
291 >                                              the_event->evt.asmt.rhs.sval,
292 >                                              &(the_event->err_msg));
293 >    break;
294 >    
295 >  case DOUBLE:
296 >    return current_zConstraint->assignDouble( the_event->evt.asmt.lhs,
297 >                                              the_event->evt.asmt.rhs.dval,
298 >                                              &(the_event->err_msg));
299 >    break;
300 >    
301 >  case INT:
302 >    return current_zConstraint->assignInt( the_event->evt.asmt.lhs,
303 >                                           the_event->evt.asmt.rhs.ival,
304 >                                           &(the_event->err_msg));
305 >    break;
306 >    
307 >  default:
308 >    the_event->err_msg = strdup( "Globals error. Invalid zConstraint"
309 >                                 " assignment type" );
310 >    return 0;
311 >    break;
312 >  }
313 >  return 0;
314 > }
315 >
316 > int Globals::zConstraintEnd( event* the_event ){
317 >
318 >  the_event->err_msg = current_zConstraint->checkMe();
319    if( the_event->err_msg != NULL ) return 0;
320  
321    return 1;
# Line 240 | Line 367 | int Globals::globalAssign( event* the_event ){
367          n_components = the_event->evt.asmt.rhs.ival;
368          components = new Component*[n_components];
369          have_n_components = 1;
370 +        return 1;
371 +      }
372 +      break;
373 +
374 +    case G_NZCONSTRAINTS:
375 +      if( the_type == STRING ){
376 +        the_event->err_msg =
377 +          strdup("Global error. nZconstraints is not a double or an int.\n" );
378 +        return 0;
379 +      }
380 +      
381 +      else if( the_type == DOUBLE ){
382 +        n_zConstraints = (int)the_event->evt.asmt.rhs.dval;
383 +        zConstraints = new ZconStamp*[n_zConstraints];
384 +        have_n_zConstraints = 1;
385 +        return 1;
386 +      }
387 +      
388 +      else{
389 +        n_zConstraints = the_event->evt.asmt.rhs.ival;
390 +        zConstraints = new ZconStamp*[n_zConstraints];
391 +        have_n_zConstraints = 1;
392          return 1;
393        }
394        break;
# Line 268 | 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 610 | Line 788 | int Globals::globalAssign( event* the_event ){
788        }
789        break;
790  
791 <   case G_THERMALTIME:
791 >    case G_RESETTIME:
792 >      switch( the_type ){
793 >        
794 >      case STRING:
795 >        the_event->err_msg =
796 >          strdup( "Global error. resetTime is not a double or int.\n" );
797 >        return 0;
798 >        break;
799 >        
800 >      case DOUBLE:
801 >        resetTime = the_event->evt.asmt.rhs.dval;
802 >        have_reset_time = 1;
803 >        return 1;
804 >        break;
805 >        
806 >      case INT:
807 >        resetTime = (double)the_event->evt.asmt.rhs.ival;
808 >        have_reset_time = 1;
809 >        return 1;
810 >        break;
811 >        
812 >      default:
813 >        the_event->err_msg =
814 >          strdup( "Global error. resetTime unrecognized.\n" );
815 >        return 0;
816 >        break;
817 >      }
818 >      break;
819 >
820 >    case G_THERMALTIME:
821        switch( the_type ){
822          
823        case STRING:
# Line 638 | Line 845 | int Globals::globalAssign( event* the_event ){
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 +      }
876 +      break;
877        
878 <    case G_RRF:
878 >    case G_ECR:
879        switch( the_type ){
880          
881        case STRING:
882          the_event->err_msg =
883 <          strdup( "Global error. rRF is not a double or int.\n" );
883 >          strdup( "Global error. electrostaticCutoffRadius is not a double or int.\n" );
884          return 0;
885          break;
886          
887        case DOUBLE:
888 <        rRF = the_event->evt.asmt.rhs.dval;
889 <        have_rrf = 1;
888 >        ecr = the_event->evt.asmt.rhs.dval;
889 >        have_ecr = 1;
890          return 1;
891          break;
892          
893        case INT:
894 <        rRF = (double)the_event->evt.asmt.rhs.ival;
895 <        have_rrf = 1;
894 >        ecr = (double)the_event->evt.asmt.rhs.ival;
895 >        have_ecr = 1;
896          return 1;
897          break;
898          
899        default:
900          the_event->err_msg =
901 <          strdup( "Global error. rRF unrecognized.\n" );
901 >          strdup( "Global error. electrostaticCutoffRadius unrecognized.\n" );
902 >        return 0;
903 >        break;
904 >      }
905 >      break;
906 >
907 >    case G_EST:
908 >      switch( the_type ){
909 >        
910 >      case STRING:
911 >        the_event->err_msg =
912 >          strdup( "Global error. electrostaticSkinThickness is not a double or int.\n" );
913          return 0;
914          break;
915 +        
916 +      case DOUBLE:
917 +        est = the_event->evt.asmt.rhs.dval;
918 +        have_est = 1;
919 +        return 1;
920 +        break;
921 +        
922 +      case INT:
923 +        est = (double)the_event->evt.asmt.rhs.ival;
924 +        have_est = 1;
925 +        return 1;
926 +        break;
927 +        
928 +      default:
929 +        the_event->err_msg =
930 +          strdup( "Global error. electrostaticSkinThickness unrecognized.\n" );
931 +        return 0;
932 +        break;
933        }
934        break;
935        
# Line 700 | Line 965 | int Globals::globalAssign( event* the_event ){
965      case G_TEMPSET:
966        if( the_type == STRING ){
967          
968 <        if( !strcmp( "true", the_event->evt.asmt.rhs.sval )) tempSet = 1;
969 <        else if( !strcmp( "false", the_event->evt.asmt.rhs.sval )) tempSet = 0;
968 >        if( !strcasecmp( "true", the_event->evt.asmt.rhs.sval )) tempSet = 1;
969 >        else if( !strcasecmp( "false", the_event->evt.asmt.rhs.sval )) tempSet = 0;
970          else{
971            the_event->err_msg =
972              strdup( "Global error. tempSet was not \"true\" or \"false\".\n" );
# Line 715 | Line 980 | int Globals::globalAssign( event* the_event ){
980          strdup( "Global error. tempSet was not \"true\" or \"false\".\n" );
981        return 0;
982        break;
983 +
984 +    case G_USEINITTIME:
985 +      if( the_type == STRING ){
986 +        
987 +        if( !strcasecmp( "true", the_event->evt.asmt.rhs.sval )) useInitTime = 1;
988 +        else if( !strcasecmp( "false", the_event->evt.asmt.rhs.sval )) useInitTime = 0;
989 +        else{
990 +          the_event->err_msg =
991 +            strdup( "Global error. useInitTime was not \"true\" or \"false\".\n" );
992 +          return 0;
993 +        }
994 +        return 1;
995 +      }
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 +      
1022      case G_USEPBC:
1023        if( the_type == STRING ){
1024          
1025 <        if( !strcmp( "true", the_event->evt.asmt.rhs.sval )) usePBC = 1;
1026 <        else if( !strcmp( "false", the_event->evt.asmt.rhs.sval )) usePBC = 0;
1025 >        if( !strcasecmp( "true", the_event->evt.asmt.rhs.sval )) usePBC = 1;
1026 >        else if( !strcasecmp( "false", the_event->evt.asmt.rhs.sval )) usePBC = 0;
1027          else{
1028            the_event->err_msg =
1029 <            strdup( "Global error. periodicBoundryConditions was not \"true\" or \"false\".\n" );
1029 >            strdup( "Global error. usePeriodicBoundaryConditions was not \"true\" or \"false\".\n" );
1030            return 0;
1031          }
1032          return 1;
1033        }
1034        
1035        the_event->err_msg =
1036 <        strdup( "Global error. tempSet was not \"true\" or \"false\".\n" );
1036 >        strdup( "Global error. usePeriodicBoundaryConditions was not \"true\" or \"false\".\n" );
1037        return 0;
1038        break;
1039 +
1040 +    case G_USERF:
1041 +      if( the_type == STRING ){
1042 +        
1043 +        if( !strcasecmp( "true", the_event->evt.asmt.rhs.sval )) useRF = 1;
1044 +        else if( !strcasecmp( "false", the_event->evt.asmt.rhs.sval )) useRF = 0;
1045 +        else{
1046 +          the_event->err_msg =
1047 +            strdup( "Global error. useReactionField was not \"true\" or \"false\".\n" );
1048 +          return 0;
1049 +        }
1050 +        return 1;
1051 +      }
1052 +      
1053 +      the_event->err_msg =
1054 +        strdup( "Global error. useReactionField was not \"true\" or \"false\".\n" );
1055 +      return 0;
1056 +      break;
1057 +
1058 +    case G_TARGETPRESSURE:
1059 +      switch( the_type ){
1060 +        
1061 +      case STRING:
1062 +        the_event->err_msg =
1063 +          strdup( "Global error. targetPressure is not a double or int.\n" );
1064 +        return 0;
1065 +        break;
1066 +        
1067 +      case DOUBLE:
1068 +        target_pressure = the_event->evt.asmt.rhs.dval;
1069 +        have_target_pressure = 1;
1070 +        return 1;
1071 +        break;
1072 +        
1073 +      case INT:
1074 +        target_pressure = (double)the_event->evt.asmt.rhs.ival;
1075 +        have_target_pressure = 1;
1076 +        return 1;
1077 +        break;
1078 +        
1079 +      default:
1080 +        the_event->err_msg =
1081 +          strdup( "Global error. targetPressure unrecognized.\n" );
1082 +        return 0;
1083 +        break;
1084 +      }
1085 +      break;
1086 +
1087 +    case G_TAUTHERMOSTAT:
1088 +      switch( the_type ){
1089 +        
1090 +      case STRING:
1091 +        the_event->err_msg =
1092 +          strdup( "Global error. tauThermostat is not a double or int.\n" );
1093 +        return 0;
1094 +        break;
1095 +        
1096 +      case DOUBLE:
1097 +        tau_thermostat = the_event->evt.asmt.rhs.dval;
1098 +        have_tau_thermostat = 1;
1099 +        return 1;
1100 +        break;
1101 +        
1102 +      case INT:
1103 +        tau_thermostat = (double)the_event->evt.asmt.rhs.ival;
1104 +        have_tau_thermostat = 1;
1105 +        return 1;
1106 +        break;
1107 +        
1108 +      default:
1109 +        the_event->err_msg =
1110 +          strdup( "Global error. tauThermostat unrecognized.\n" );
1111 +        return 0;
1112 +        break;
1113 +      }
1114 +      break;
1115 +
1116 +    case G_TAUBAROSTAT:
1117 +      switch( the_type ){
1118 +        
1119 +      case STRING:
1120 +        the_event->err_msg =
1121 +          strdup( "Global error. tauBarostat is not a double or int.\n" );
1122 +        return 0;
1123 +        break;
1124 +        
1125 +      case DOUBLE:
1126 +        tau_barostat = the_event->evt.asmt.rhs.dval;
1127 +        have_tau_barostat = 1;
1128 +        return 1;
1129 +        break;
1130 +        
1131 +      case INT:
1132 +        tau_barostat = (double)the_event->evt.asmt.rhs.ival;
1133 +        have_tau_barostat = 1;
1134 +        return 1;
1135 +        break;
1136 +        
1137 +      default:
1138 +        the_event->err_msg =
1139 +          strdup( "Global error. tauBarostat unrecognized.\n" );
1140 +        return 0;
1141 +        break;
1142 +      }
1143 +      break;
1144 +      
1145 +    case G_ZCONSTIME:
1146 +      switch( the_type ){
1147 +        
1148 +      case STRING:
1149 +        the_event->err_msg =
1150 +          strdup( "Global error. zcons_time is not a double or int.\n" );
1151 +        return 0;
1152 +        break;
1153 +        
1154 +      case DOUBLE:
1155 +        zcons_time = the_event->evt.asmt.rhs.dval;
1156 +        have_zcons_time = 1;
1157 +        return 1;
1158 +        break;
1159 +        
1160 +      case INT:
1161 +        zcons_time = (double)the_event->evt.asmt.rhs.ival;
1162 +        have_zcons_time = 1;
1163 +        return 1;
1164 +        break;
1165 +        
1166 +      default:
1167 +        the_event->err_msg =
1168 +          strdup( "Global error. zcons_time unrecognized.\n" );
1169 +        return 0;
1170 +        break;
1171 +      }
1172 +      break;
1173 +
1174 +    case G_ZCONSTOL:
1175 +      switch( the_type ){
1176 +        
1177 +      case STRING:
1178 +        the_event->err_msg =
1179 +          strdup( "Global error. zcons_tol is not a double or int.\n" );
1180 +        return 0;
1181 +        break;
1182 +        
1183 +      case DOUBLE:
1184 +        zcons_tol = the_event->evt.asmt.rhs.dval;
1185 +        have_zcons_tol = 1;
1186 +        return 1;
1187 +        break;
1188 +        
1189 +      case INT:
1190 +        zcons_tol = (double)the_event->evt.asmt.rhs.ival;
1191 +        have_zcons_tol = 1;
1192 +        return 1;
1193 +        break;
1194 +        
1195 +      default:
1196 +        the_event->err_msg =
1197 +          strdup( "Global error. zcons_ol unrecognized.\n" );
1198 +        return 0;
1199 +        break;
1200 +      }
1201 +      break;
1202 +  
1203 +    case G_ZCONSFORCEPOLICY:
1204 +      switch( the_type ){
1205 +        
1206 +      case STRING:
1207 +   strcpy(zconsForcePolicy, the_event->evt.asmt.rhs.sval);
1208 +
1209 +   for(int i = 0; zconsForcePolicy[i] != '\0'; i++)
1210 +        {
1211 +      zconsForcePolicy[i] = toupper(zconsForcePolicy[i]);
1212 +   }
1213 +        have_zcons_force_policy = 1;
1214 +   return 1;
1215 +        break;
1216 +        
1217 +      case DOUBLE:
1218 +        the_event->err_msg =
1219 +          strdup( "Global error. zconsForcePolicy is not a double or int.\n" );
1220 +        return 0;
1221 +        break;
1222 +        
1223 +      case INT:
1224 +        the_event->err_msg =
1225 +          strdup( "Global error. zconsForcePolicy is not a double or int.\n" );
1226 +        return 0;
1227 +        break;
1228 +        
1229 +      default:
1230 +        the_event->err_msg =
1231 +          strdup( "Global error. zconsForcePolicy unrecognized.\n" );
1232 +        return 0;
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_RESETFRQ:
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_resetfrq= the_event->evt.asmt.rhs.dval;
1339 +        have_minimizer_resetfrq = 1;
1340 +        return 1;
1341 +        break;
1342 +        
1343 +      case INT:
1344 +        minimizer_resetfrq= the_event->evt.asmt.rhs.ival;
1345 +        have_minimizer_resetfrq = 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 ){
1476 +        
1477 +      case STRING:
1478 +   the_event->err_msg =
1479 +          strdup( "Global error. seed is not a string.\n" );
1480 +        return 0;
1481 +   return 0;
1482 +        break;
1483 +        
1484 +      case DOUBLE:
1485 +   have_seed = 1;
1486 +   seed = (int)the_event->evt.asmt.rhs.dval;
1487 +        return 1;
1488 +        break;
1489 +        
1490 +      case INT:
1491 +   have_seed = 1;
1492 +   seed =  the_event->evt.asmt.rhs.ival ;
1493 +        return 1;
1494 +        break;
1495 +        
1496 +      default:
1497 +        the_event->err_msg =
1498 +          strdup( "Global error. seed unrecognized.\n" );
1499 +        return 0;
1500 +        break;
1501 +      }
1502 +      break;
1503 +      // add more token cases here.
1504 +
1505      }
1506    }
1507    

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines