--- trunk/OOPSE/libBASS/Globals.cpp 2003/03/21 17:42:12 378 +++ trunk/OOPSE/libBASS/Globals.cpp 2003/07/09 13:56:27 579 @@ -25,22 +25,27 @@ #define G_RUNTIME 6 //optional parameters -#define G_INITIALCONFIG 7 -#define G_FINALCONFIG 8 -#define G_NMOL 9 -#define G_DENSITY 10 -#define G_BOX 11 -#define G_BOXX 12 -#define G_BOXY 13 -#define G_BOXZ 14 -#define G_SAMPLETIME 15 -#define G_STATUSTIME 16 -#define G_RRF 17 -#define G_DIELECTRIC 18 -#define G_TEMPSET 19 -#define G_THERMALTIME 20 -#define G_USEPBC 21 -#define G_MIXINGRULE 22 +#define G_INITIALCONFIG 7 +#define G_FINALCONFIG 8 +#define G_NMOL 9 +#define G_DENSITY 10 +#define G_BOX 11 +#define G_BOXX 12 +#define G_BOXY 13 +#define G_BOXZ 14 +#define G_SAMPLETIME 15 +#define G_STATUSTIME 16 +#define G_ECR 17 +#define G_DIELECTRIC 18 +#define G_TEMPSET 19 +#define G_THERMALTIME 20 +#define G_USEPBC 21 +#define G_MIXINGRULE 22 +#define G_EST 23 +#define G_USERF 24 +#define G_TARGETPRESSURE 25 +#define G_TAUTHERMOSTAT 26 +#define G_TAUBAROSTAT 27 Globals::Globals(){ @@ -70,19 +75,24 @@ Globals::Globals(){ addHash( "boxZ", G_BOXZ ); addHash( "sampleTime", G_SAMPLETIME ); addHash( "statusTime", G_STATUSTIME ); - addHash( "rRF", G_RRF ); + addHash( "electrostaticCutoffRadius", G_ECR ); addHash( "dielectric", G_DIELECTRIC ); addHash( "tempSet", G_TEMPSET ); addHash( "thermalTime", G_THERMALTIME ); addHash( "mixingRule", G_MIXINGRULE); - addHash( "periodicBox", G_USEPBC); + addHash( "usePeriodicBoundaryConditions", G_USEPBC); + addHash( "electrostaticSkinThickness", G_EST ); + addHash( "useReactionField", G_USERF ); + addHash( "targetPressure", G_TARGETPRESSURE); + addHash( "tauThermostat", G_TAUTHERMOSTAT); + addHash( "tauBarostat", G_TAUBAROSTAT); // define some default values strcpy( mixingRule,"standard"); //default mixing rules to standard. usePBC = 1; //default periodic boundry conditions to on + useRF = 0; - have_force_field = 0; have_n_components = 0; have_target_temp = 0; @@ -102,9 +112,14 @@ Globals::Globals(){ have_sample_time = 0; have_status_time = 0; have_thermal_time = 0; - have_rrf = 0; + have_ecr = 0; have_dielectric = 0; have_tempSet = 0; + have_est = 0; + have_target_pressure =0; + have_q_mass = 0; + have_tau_thermostat = 0; + have_tau_barostat = 0; } Globals::~Globals(){ @@ -639,34 +654,63 @@ int Globals::globalAssign( event* the_event ){ } break; - case G_RRF: + case G_ECR: switch( the_type ){ case STRING: the_event->err_msg = - strdup( "Global error. rRF is not a double or int.\n" ); + strdup( "Global error. electrostaticCutoffRadius is not a double or int.\n" ); return 0; break; case DOUBLE: - rRF = the_event->evt.asmt.rhs.dval; - have_rrf = 1; + ecr = the_event->evt.asmt.rhs.dval; + have_ecr = 1; return 1; break; case INT: - rRF = (double)the_event->evt.asmt.rhs.ival; - have_rrf = 1; + ecr = (double)the_event->evt.asmt.rhs.ival; + have_ecr = 1; return 1; break; default: the_event->err_msg = - strdup( "Global error. rRF unrecognized.\n" ); + strdup( "Global error. electrostaticCutoffRadius unrecognized.\n" ); return 0; break; } break; + + case G_EST: + switch( the_type ){ + + case STRING: + the_event->err_msg = + strdup( "Global error. electrostaticSkinThickness is not a double or int.\n" ); + return 0; + break; + + case DOUBLE: + est = the_event->evt.asmt.rhs.dval; + have_est = 1; + return 1; + break; + + case INT: + est = (double)the_event->evt.asmt.rhs.ival; + have_est = 1; + return 1; + break; + + default: + the_event->err_msg = + strdup( "Global error. electrostaticSkinThickness unrecognized.\n" ); + return 0; + break; + } + break; case G_DIELECTRIC: switch( the_type ){ @@ -700,8 +744,8 @@ int Globals::globalAssign( event* the_event ){ case G_TEMPSET: if( the_type == STRING ){ - if( !strcmp( "true", the_event->evt.asmt.rhs.sval )) tempSet = 1; - else if( !strcmp( "false", the_event->evt.asmt.rhs.sval )) tempSet = 0; + if( !strcasecmp( "true", the_event->evt.asmt.rhs.sval )) tempSet = 1; + else if( !strcasecmp( "false", the_event->evt.asmt.rhs.sval )) tempSet = 0; else{ the_event->err_msg = strdup( "Global error. tempSet was not \"true\" or \"false\".\n" ); @@ -719,20 +763,126 @@ int Globals::globalAssign( event* the_event ){ case G_USEPBC: if( the_type == STRING ){ - if( !strcmp( "true", the_event->evt.asmt.rhs.sval )) usePBC = 1; - else if( !strcmp( "false", the_event->evt.asmt.rhs.sval )) usePBC = 0; + if( !strcasecmp( "true", the_event->evt.asmt.rhs.sval )) usePBC = 1; + else if( !strcasecmp( "false", the_event->evt.asmt.rhs.sval )) usePBC = 0; else{ the_event->err_msg = - strdup( "Global error. periodicBoundryConditions was not \"true\" or \"false\".\n" ); + strdup( "Global error. usePeriodicBoundaryConditions was not \"true\" or \"false\".\n" ); + return 0; + } + return 1; + } + + the_event->err_msg = + strdup( "Global error. usePeriodicBoundaryConditions was not \"true\" or \"false\".\n" ); + return 0; + break; + + case G_USERF: + if( the_type == STRING ){ + + if( !strcasecmp( "true", the_event->evt.asmt.rhs.sval )) useRF = 1; + else if( !strcasecmp( "false", the_event->evt.asmt.rhs.sval )) useRF = 0; + else{ + the_event->err_msg = + strdup( "Global error. useReactionField was not \"true\" or \"false\".\n" ); return 0; } return 1; } the_event->err_msg = - strdup( "Global error. tempSet was not \"true\" or \"false\".\n" ); + strdup( "Global error. useReactionField was not \"true\" or \"false\".\n" ); return 0; break; + + case G_TARGETPRESSURE: + switch( the_type ){ + + case STRING: + the_event->err_msg = + strdup( "Global error. targetPressure is not a double or int.\n" ); + return 0; + break; + + case DOUBLE: + target_pressure = the_event->evt.asmt.rhs.dval; + have_target_pressure = 1; + return 1; + break; + + case INT: + target_pressure = (double)the_event->evt.asmt.rhs.ival; + have_target_pressure = 1; + return 1; + break; + + default: + the_event->err_msg = + strdup( "Global error. targetPressure unrecognized.\n" ); + return 0; + break; + } + break; + + case G_TAUTHERMOSTAT: + switch( the_type ){ + + case STRING: + the_event->err_msg = + strdup( "Global error. tauThermostat is not a double or int.\n" ); + return 0; + break; + + case DOUBLE: + tau_thermostat = the_event->evt.asmt.rhs.dval; + have_tau_thermostat = 1; + return 1; + break; + + case INT: + tau_thermostat = (double)the_event->evt.asmt.rhs.ival; + have_tau_thermostat = 1; + return 1; + break; + + default: + the_event->err_msg = + strdup( "Global error. tauThermostat unrecognized.\n" ); + return 0; + break; + } + break; + + case G_TAUBAROSTAT: + switch( the_type ){ + + case STRING: + the_event->err_msg = + strdup( "Global error. tauBarostat is not a double or int.\n" ); + return 0; + break; + + case DOUBLE: + tau_barostat = the_event->evt.asmt.rhs.dval; + have_tau_barostat = 1; + return 1; + break; + + case INT: + tau_barostat = (double)the_event->evt.asmt.rhs.ival; + have_tau_barostat = 1; + return 1; + break; + + default: + the_event->err_msg = + strdup( "Global error. tauBarostat unrecognized.\n" ); + return 0; + break; + } + break; + } }