| 1 | < | /* | 
| 1 | > | /* | 
| 2 |  | * Copyright (c) 2005 The University of Notre Dame. All Rights Reserved. | 
| 3 |  | * | 
| 4 |  | * The University of Notre Dame grants you ("Licensee") a | 
| 46 |  |  | 
| 47 |  | #include <stdlib.h> | 
| 48 |  | #include <vector> | 
| 49 | + | #include <string> | 
| 50 | + | #include <map> | 
| 51 |  |  | 
| 52 |  | #include "io/BASS_interface.h" | 
| 53 |  | #include "types/Component.hpp" | 
| 52 | – | #include "io/LinkedCommand.hpp" | 
| 54 |  | #include "types/MakeStamps.hpp" | 
| 55 |  | #include "types/ZconStamp.hpp" | 
| 56 |  |  | 
| 57 |  |  | 
| 58 |  |  | 
| 59 | + | /** | 
| 60 | + | * @class Globals Globals.hpp "io/Globals.hpp" | 
| 61 | + | * @brief parsing and storing global parameters for simulation | 
| 62 | + | * @todo need refactorying | 
| 63 | + | */ | 
| 64 |  | class Globals{ | 
| 65 |  |  | 
| 66 | < | public: | 
| 66 | > | public: | 
| 67 |  |  | 
| 68 |  | Globals(); | 
| 69 |  | ~Globals(); | 
| 113 |  | int    getUseInitXSstate( void )  { return useInitXSstate; } | 
| 114 |  | double getOrthoBoxTolerance(void) { return orthoBoxTolerance; } | 
| 115 |  | int    getPBC( void )             { return usePBC; } | 
| 110 | – | int    getUseRF( void )           { return useRF; } | 
| 116 |  | char*  getMixingRule( void)       { return mixingRule; } | 
| 117 |  | double getZconsTime(void)         { return zcons_time; } | 
| 118 |  | double getZconsTol(void)          { return zcons_tol; } | 
| 134 |  | double getThermIntLambda(void)    { return thermodynamic_integration_lambda; } | 
| 135 |  | double getThermIntK(void)         { return thermodynamic_integration_k; } | 
| 136 |  | char*  getForceFieldVariant( void ) { return forcefield_variant; } | 
| 137 | < | char* getForceFieldFileName() { return forcefield_filename;} | 
| 137 | > | char*  getForceFieldFileName()    { return forcefield_filename; } | 
| 138 | > | double getDistSpringConst(void)   { return therm_int_dist_spring; } | 
| 139 | > | double getThetaSpringConst(void)  { return therm_int_theta_spring; } | 
| 140 | > | double getOmegaSpringConst(void)  { return therm_int_omega_spring; } | 
| 141 | > | double getSurfaceTension(void)    { return surface_tension; } | 
| 142 | > | bool   getPrintPressureTensor(void) { return print_pressure_tensor;} | 
| 143 | > | char*  getElectrostaticSummationMethod(void) { return electrostaticSummationMethod; } | 
| 144 | > | double getDampingAlpha(void)      { return dampingAlpha; } | 
| 145 | > | char*  getCutoffPolicy(void)      { return cutoffPolicy; } | 
| 146 | > | bool   getCompressDumpFile(void)  { return compressDumpFile;} | 
| 147 | > |  | 
| 148 |  | short int haveDt( void )            { return have_dt; } | 
| 149 |  | short int haveRunTime( void )       { return have_run_time; } | 
| 150 |  | short int haveEnsemble( void )      { return have_ensemble; } | 
| 187 |  | short int haveMinLSMaxIter(void)    { return have_minimizer_ls_maxiteration;} | 
| 188 |  | short int haveThermIntLambda(void)  { return have_thermodynamic_integration_lambda; } | 
| 189 |  | short int haveThermIntK(void)       { return have_thermodynamic_integration_k; } | 
| 190 | < | short int haveForceFieldVariant(void) { return have_forcefield_variant; } | 
| 191 | < | short int haveForceFieldFileName(void) { return have_forcefield_filename; } | 
| 190 | > | short int haveForceFieldVariant(void)  { return have_forcefield_variant; } | 
| 191 | > | short int haveForceFieldFileName(void) { return have_forcefield_filename; } | 
| 192 | > | short int haveDistSpringConst(void)    { return have_dist_spring_constant; } | 
| 193 | > | short int haveThetaSpringConst(void)   { return have_theta_spring_constant; } | 
| 194 | > | short int haveOmegaSpringConst(void)   { return have_omega_spring_constant; } | 
| 195 | > | short int haveSurfaceTension(void)     { return have_surface_tension; } | 
| 196 | > | short int havePrintPressureTensor(void) {return have_print_pressure_tensor;} | 
| 197 | > | short int haveElectrostaticSummationMethod(void) {return have_electro_sum_method;} | 
| 198 | > | short int haveDampingAlpha(void)       { return have_damping_alpha; } | 
| 199 | > | short int haveCutoffPolicy(void)       { return have_cutoff_policy; } | 
| 200 | > | short int haveCompressDumpfile(void)   { return have_compress_dumpfile; } | 
| 201 | > |  | 
| 202 |  | /* other accessors */ | 
| 203 |  | Component** getComponents( void )   { return components; } | 
| 204 |  | ZconStamp** getZconStamp( void )    { return zConstraints; } | 
| 205 |  |  | 
| 206 | < | private: | 
| 206 | > | private: | 
| 207 |  |  | 
| 208 | < | int hash_size; | 
| 209 | < | int hash_shift; | 
| 210 | < | int hash( char* text ); | 
| 211 | < | void addHash( char* text, int token ); | 
| 187 | < | LinkedCommand** command_table; | 
| 208 | > |  | 
| 209 | > | typedef std::map<std::string, int> CommandMapType; | 
| 210 | > | CommandMapType command_table; | 
| 211 | > |  | 
| 212 |  |  | 
| 213 |  | char* checkMe( void ); | 
| 214 |  |  | 
| 245 |  | int useInitTime; | 
| 246 |  | int useInitXSstate; | 
| 247 |  | int usePBC; | 
| 224 | – | int useRF; | 
| 248 |  | double q_mass; | 
| 249 |  | double tau_thermostat; | 
| 250 |  | double tau_barostat; | 
| 270 |  | double thermodynamic_integration_k; | 
| 271 |  | char forcefield_variant[100]; | 
| 272 |  | char forcefield_filename[100]; | 
| 273 | + | double therm_int_dist_spring; | 
| 274 | + | double therm_int_theta_spring; | 
| 275 | + | double therm_int_omega_spring; | 
| 276 | + | double surface_tension; | 
| 277 | + | bool print_pressure_tensor; | 
| 278 | + | char electrostaticSummationMethod[100]; | 
| 279 | + | double dampingAlpha; | 
| 280 | + | char cutoffPolicy[100]; | 
| 281 | + | bool compressDumpFile; | 
| 282 | + |  | 
| 283 |  | //required arguments | 
| 284 |  | short int have_force_field, have_n_components, have_target_temp; | 
| 285 |  | short int have_target_pressure, have_ensemble, have_dt, have_run_time; | 
| 303 |  | short int have_thermodynamic_integration_k; | 
| 304 |  | short int have_forcefield_variant; | 
| 305 |  | short int have_forcefield_filename; | 
| 306 | + | short int have_dist_spring_constant; | 
| 307 | + | short int have_theta_spring_constant; | 
| 308 | + | short int have_omega_spring_constant; | 
| 309 | + | short int have_surface_tension; | 
| 310 | + | short int have_print_pressure_tensor; | 
| 311 | + | short int have_electro_sum_method; | 
| 312 | + | short int have_damping_alpha; | 
| 313 | + | short int have_cutoff_policy; | 
| 314 | + | short int have_compress_dumpfile; | 
| 315 |  | }; | 
| 316 |  |  | 
| 317 |  | #endif |