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 394 by gezelter, Mon Mar 24 21:55:34 2003 UTC vs.
Revision 682 by tim, Tue Aug 12 17:51:33 2003 UTC

# Line 25 | Line 25
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
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  
47
53   Globals::Globals(){
54    
55    int i;
# Line 80 | Line 85 | Globals::Globals(){
85    addHash( "usePeriodicBoundaryConditions",        G_USEPBC);
86    addHash( "electrostaticSkinThickness",           G_EST );
87    addHash( "useReactionField",                     G_USERF );
88 <  
88 >  addHash( "targetPressure",                       G_TARGETPRESSURE);
89 >  addHash( "tauThermostat",                        G_TAUTHERMOSTAT);
90 >  addHash( "tauBarostat",                          G_TAUBAROSTAT);
91 >  addHash( "zconsTime",                            G_ZCONSTIME);
92 >  addHash( "nZconstraints",                        G_NZCONSTRAINTS);
93 >  addHash( "zconsTol",                               G_ZCONSTOL);
94 >        
95    // define some default values
96  
97    strcpy( mixingRule,"standard");  //default mixing rules to standard.
# Line 110 | Line 121 | Globals::Globals(){
121    have_dielectric =     0;
122    have_tempSet =        0;
123    have_est =            0;
124 +  have_target_pressure =0;
125 +  have_q_mass =         0;
126 +  have_tau_thermostat = 0;
127 +  have_tau_barostat   = 0;
128 +  have_zcons_time     = 0;
129 +  have_n_zConstraints = 0;
130 +  have_zConstraints   = 0;
131 +  have_zcons_tol = 0;
132   }
133  
134   Globals::~Globals(){
# Line 184 | Line 203 | int Globals::componentStartIndex( event* the_event ){
203    return 0;
204   }
205  
206 < int Globals::componentStartIndex( event* the_event ){
206 > int Globals::componentEnd( event* the_event ){
207  
208 <  current_component->startIndex( the_event->evt.si.array,
209 <                                 the_event->evt.si.n_elements );
208 >  the_event->err_msg = current_component->checkMe();
209 >  if( the_event->err_msg != NULL ) return 0;
210 >
211    return 1;
212   }
213  
214 < int Globals::componentEnd( event* the_event ){
214 > int Globals::newZconstraint( event* the_event ){
215 >  
216  
217 <  the_event->err_msg = current_component->checkMe();
217 >  int index = the_event->evt.blk_index;
218 >  char err[200];
219 >  current_zConstraint = new ZconStamp( index );
220 >  
221 >  have_zConstraints = 1;
222 >
223 >  if( have_n_zConstraints && index < n_zConstraints )
224 >    zConstraints[index] = current_zConstraint;
225 >  else{
226 >    if( have_n_zConstraints ){
227 >      sprintf( err, "Globals error, %d out of nZconstraints range",
228 >               index );
229 >      the_event->err_msg = strdup( err );
230 >      return 0;
231 >    }
232 >    else{
233 >      the_event->err_msg = strdup("Globals error, nZconstraints"
234 >                                  " not given before"
235 >                                  " first zConstraint declaration." );
236 >      return 0;
237 >    }
238 >  }  
239 >
240 >  return 1;
241 > }
242 >
243 >
244 >
245 > int Globals::zConstraintAssign( event* the_event ){
246 >
247 >  switch( the_event->evt.asmt.asmt_type ){
248 >    
249 >  case STRING:
250 >    return current_zConstraint->assignString( the_event->evt.asmt.lhs,
251 >                                            the_event->evt.asmt.rhs.sval,
252 >                                            &(the_event->err_msg));
253 >    break;
254 >    
255 >  case DOUBLE:
256 >    return current_zConstraint->assignDouble( the_event->evt.asmt.lhs,
257 >                                            the_event->evt.asmt.rhs.dval,
258 >                                            &(the_event->err_msg));
259 >    break;
260 >    
261 >  case INT:
262 >    return current_zConstraint->assignInt( the_event->evt.asmt.lhs,
263 >                                         the_event->evt.asmt.rhs.ival,
264 >                                         &(the_event->err_msg));
265 >    break;
266 >    
267 >  default:
268 >    the_event->err_msg = strdup( "Globals error. Invalid zConstraint"
269 >                                 " assignment type" );
270 >    return 0;
271 >    break;
272 >  }
273 >  return 0;
274 > }
275 >
276 > int Globals::zConstraintEnd( event* the_event ){
277 >
278 >  the_event->err_msg = current_zConstraint->checkMe();
279    if( the_event->err_msg != NULL ) return 0;
280  
281    return 1;
# Line 245 | Line 327 | int Globals::globalAssign( event* the_event ){
327          n_components = the_event->evt.asmt.rhs.ival;
328          components = new Component*[n_components];
329          have_n_components = 1;
330 +        return 1;
331 +      }
332 +      break;
333 +
334 +    case G_NZCONSTRAINTS:
335 +      if( the_type == STRING ){
336 +        the_event->err_msg =
337 +          strdup("Global error. nZconstraints is not a double or an int.\n" );
338 +        return 0;
339 +      }
340 +      
341 +      else if( the_type == DOUBLE ){
342 +        n_zConstraints = (int)the_event->evt.asmt.rhs.dval;
343 +        zConstraints = new ZconStamp*[n_zConstraints];
344 +        have_n_zConstraints = 1;
345 +        return 1;
346 +      }
347 +      
348 +      else{
349 +        n_zConstraints = the_event->evt.asmt.rhs.ival;
350 +        zConstraints = new ZconStamp*[n_zConstraints];
351 +        have_n_zConstraints = 1;
352          return 1;
353        }
354        break;
# Line 734 | Line 838 | int Globals::globalAssign( event* the_event ){
838      case G_TEMPSET:
839        if( the_type == STRING ){
840          
841 <        if( !strcmp( "true", the_event->evt.asmt.rhs.sval )) tempSet = 1;
842 <        else if( !strcmp( "false", the_event->evt.asmt.rhs.sval )) tempSet = 0;
841 >        if( !strcasecmp( "true", the_event->evt.asmt.rhs.sval )) tempSet = 1;
842 >        else if( !strcasecmp( "false", the_event->evt.asmt.rhs.sval )) tempSet = 0;
843          else{
844            the_event->err_msg =
845              strdup( "Global error. tempSet was not \"true\" or \"false\".\n" );
# Line 753 | Line 857 | int Globals::globalAssign( event* the_event ){
857      case G_USEPBC:
858        if( the_type == STRING ){
859          
860 <        if( !strcmp( "true", the_event->evt.asmt.rhs.sval )) usePBC = 1;
861 <        else if( !strcmp( "false", the_event->evt.asmt.rhs.sval )) usePBC = 0;
860 >        if( !strcasecmp( "true", the_event->evt.asmt.rhs.sval )) usePBC = 1;
861 >        else if( !strcasecmp( "false", the_event->evt.asmt.rhs.sval )) usePBC = 0;
862          else{
863            the_event->err_msg =
864              strdup( "Global error. usePeriodicBoundaryConditions was not \"true\" or \"false\".\n" );
# Line 771 | Line 875 | int Globals::globalAssign( event* the_event ){
875      case G_USERF:
876        if( the_type == STRING ){
877          
878 <        if( !strcmp( "true", the_event->evt.asmt.rhs.sval )) useRF = 1;
879 <        else if( !strcmp( "false", the_event->evt.asmt.rhs.sval )) useRF = 0;
878 >        if( !strcasecmp( "true", the_event->evt.asmt.rhs.sval )) useRF = 1;
879 >        else if( !strcasecmp( "false", the_event->evt.asmt.rhs.sval )) useRF = 0;
880          else{
881            the_event->err_msg =
882              strdup( "Global error. useReactionField was not \"true\" or \"false\".\n" );
# Line 786 | Line 890 | int Globals::globalAssign( event* the_event ){
890        return 0;
891        break;
892  
893 +    case G_TARGETPRESSURE:
894 +      switch( the_type ){
895 +        
896 +      case STRING:
897 +        the_event->err_msg =
898 +          strdup( "Global error. targetPressure is not a double or int.\n" );
899 +        return 0;
900 +        break;
901 +        
902 +      case DOUBLE:
903 +        target_pressure = the_event->evt.asmt.rhs.dval;
904 +        have_target_pressure = 1;
905 +        return 1;
906 +        break;
907 +        
908 +      case INT:
909 +        target_pressure = (double)the_event->evt.asmt.rhs.ival;
910 +        have_target_pressure = 1;
911 +        return 1;
912 +        break;
913 +        
914 +      default:
915 +        the_event->err_msg =
916 +          strdup( "Global error. targetPressure unrecognized.\n" );
917 +        return 0;
918 +        break;
919 +      }
920 +      break;
921  
922 +    case G_TAUTHERMOSTAT:
923 +      switch( the_type ){
924 +        
925 +      case STRING:
926 +        the_event->err_msg =
927 +          strdup( "Global error. tauThermostat is not a double or int.\n" );
928 +        return 0;
929 +        break;
930 +        
931 +      case DOUBLE:
932 +        tau_thermostat = the_event->evt.asmt.rhs.dval;
933 +        have_tau_thermostat = 1;
934 +        return 1;
935 +        break;
936 +        
937 +      case INT:
938 +        tau_thermostat = (double)the_event->evt.asmt.rhs.ival;
939 +        have_tau_thermostat = 1;
940 +        return 1;
941 +        break;
942 +        
943 +      default:
944 +        the_event->err_msg =
945 +          strdup( "Global error. tauThermostat unrecognized.\n" );
946 +        return 0;
947 +        break;
948 +      }
949 +      break;
950 +
951 +    case G_TAUBAROSTAT:
952 +      switch( the_type ){
953 +        
954 +      case STRING:
955 +        the_event->err_msg =
956 +          strdup( "Global error. tauBarostat is not a double or int.\n" );
957 +        return 0;
958 +        break;
959 +        
960 +      case DOUBLE:
961 +        tau_barostat = the_event->evt.asmt.rhs.dval;
962 +        have_tau_barostat = 1;
963 +        return 1;
964 +        break;
965 +        
966 +      case INT:
967 +        tau_barostat = (double)the_event->evt.asmt.rhs.ival;
968 +        have_tau_barostat = 1;
969 +        return 1;
970 +        break;
971 +        
972 +      default:
973 +        the_event->err_msg =
974 +          strdup( "Global error. tauBarostat unrecognized.\n" );
975 +        return 0;
976 +        break;
977 +      }
978 +      break;
979 +      
980 +   case G_ZCONSTIME:
981 +      switch( the_type ){
982 +        
983 +      case STRING:
984 +        the_event->err_msg =
985 +          strdup( "Global error. zcons_time is not a double or int.\n" );
986 +        return 0;
987 +        break;
988 +        
989 +      case DOUBLE:
990 +        zcons_time = the_event->evt.asmt.rhs.dval;
991 +        have_zcons_time = 1;
992 +        return 1;
993 +        break;
994 +        
995 +      case INT:
996 +        zcons_time = (double)the_event->evt.asmt.rhs.ival;
997 +        have_zcons_time = 1;
998 +        return 1;
999 +        break;
1000 +        
1001 +      default:
1002 +        the_event->err_msg =
1003 +          strdup( "Global error. zcons_time unrecognized.\n" );
1004 +        return 0;
1005 +        break;
1006 +      }
1007 +      break;
1008 +
1009 +   case G_ZCONSTOL:
1010 +      switch( the_type ){
1011 +        
1012 +      case STRING:
1013 +        the_event->err_msg =
1014 +          strdup( "Global error. zcons_tol is not a double or int.\n" );
1015 +        return 0;
1016 +        break;
1017 +        
1018 +      case DOUBLE:
1019 +        zcons_tol = the_event->evt.asmt.rhs.dval;
1020 +        have_zcons_tol = 1;
1021 +        return 1;
1022 +        break;
1023 +        
1024 +      case INT:
1025 +        zcons_tol = (double)the_event->evt.asmt.rhs.ival;
1026 +        have_zcons_tol = 1;
1027 +        return 1;
1028 +        break;
1029 +        
1030 +      default:
1031 +        the_event->err_msg =
1032 +          strdup( "Global error. zcons_ol unrecognized.\n" );
1033 +        return 0;
1034 +        break;
1035 +      }
1036 +      break;
1037 +  
1038 +
1039 +      // add more token cases here.
1040 +
1041      }
1042    }
1043    

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines