ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/src/io/Globals.hpp
(Generate patch)

Comparing trunk/src/io/Globals.hpp (file contents):
Revision 417 by chrisfen, Thu Mar 10 15:10:24 2005 UTC vs.
Revision 1306 by chuckv, Thu Oct 16 18:25:36 2008 UTC

# Line 1 | Line 1
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
# Line 46 | Line 46
46  
47   #include <stdlib.h>
48   #include <vector>
49 + #include <string>
50 + #include <map>
51  
50 #include "io/BASS_interface.h"
52   #include "types/Component.hpp"
53 < #include "io/LinkedCommand.hpp"
54 < #include "types/MakeStamps.hpp"
55 < #include "types/ZconStamp.hpp"
53 > #include "types/ZconsStamp.hpp"
54 > #include "types/MoleculeStamp.hpp"
55 > #include "utils/ParameterManager.hpp"
56  
57 + namespace oopse {
58 +  class Globals : public DataHolder {
59 +  public:
60 +    typedef std::pair<int, int> intPair;
61  
62 +    Globals();
63 +    virtual ~Globals();
64 +    
65 +    DeclareParameter(ForceField, std::string);
66 +    DeclareParameter(TargetTemp, RealType);
67 +    DeclareParameter(Ensemble, std::string);
68 +    DeclareParameter(Dt, RealType);
69 +    DeclareParameter(RunTime, RealType);
70 +    DeclareParameter(FinalConfig, std::string);
71 +    DeclareParameter(SampleTime, RealType);
72 +    DeclareParameter(ResetTime, RealType);
73 +    DeclareParameter(StatusTime, RealType);
74 +    DeclareParameter(CutoffRadius, RealType);
75 +    DeclareParameter(SwitchingRadius, RealType);
76 +    DeclareParameter(TempSet, bool);
77 +    DeclareParameter(ThermalTime, RealType);
78 +    DeclareParameter(UsePeriodicBoundaryConditions, bool);
79 +    DeclareParameter(TargetPressure, RealType);
80 +    DeclareParameter(UseAtomicVirial, bool);
81 +    DeclareParameter(TauThermostat, RealType);
82 +    DeclareParameter(TauBarostat, RealType);
83 +    DeclareParameter(ZconsTime, RealType);
84 +    DeclareParameter(ZconsTol, RealType);
85 +    DeclareParameter(ZconsForcePolicy, std::string);
86 +    DeclareParameter(Seed, int);
87 +    DeclareParameter(UseInitalTime, bool);
88 +    DeclareParameter(UseIntialExtendedSystemState, bool);
89 +    DeclareParameter(OrthoBoxTolerance, RealType);
90 +    DeclareParameter(Minimizer, std::string);
91 +    DeclareParameter(MinimizerMaxIter, RealType);
92 +    DeclareParameter(MinimizerWriteFrq, int);
93 +    DeclareParameter(MinimizerStepSize, RealType);
94 +    DeclareParameter(MinimizerFTol, RealType);
95 +    DeclareParameter(MinimizerGTol, RealType);
96 +    DeclareParameter(MinimizerLSTol, RealType);
97 +    DeclareParameter(MinimizerLSMaxIter, int);
98 +    DeclareParameter(ZconsGap, RealType);
99 +    DeclareParameter(ZconsFixtime, RealType);
100 +    DeclareParameter(ZconsUsingSMD, bool);
101 +    DeclareParameter(UseSolidThermInt, bool);
102 +    DeclareParameter(UseLiquidThermInt, bool);
103 +    DeclareParameter(ThermodynamicIntegrationLambda, RealType);
104 +    DeclareParameter(ThermodynamicIntegrationK, RealType);
105 +    DeclareParameter(ForceFieldVariant, std::string);
106 +    DeclareParameter(ForceFieldFileName, std::string);
107 +    DeclareParameter(ThermIntDistSpringConst, RealType);
108 +    DeclareParameter(ThermIntThetaSpringConst, RealType);
109 +    DeclareParameter(ThermIntOmegaSpringConst, RealType);
110 +    DeclareParameter(SurfaceTension, RealType);
111 +    DeclareParameter(PrintPressureTensor, bool);
112 +    DeclareParameter(TaggedAtomPair, intPair);
113 +    DeclareParameter(PrintTaggedPairDistance, bool);
114 +    DeclareParameter(ElectrostaticSummationMethod, std::string);
115 +    DeclareParameter(ElectrostaticScreeningMethod, std::string);
116 +    DeclareParameter(DampingAlpha, RealType);
117 +    DeclareParameter(Dielectric, RealType);
118 +    DeclareParameter(CutoffPolicy, std::string);
119 +    DeclareParameter(SwitchingFunctionType, std::string);
120 +    DeclareParameter(CompressDumpFile, bool);
121 +    DeclareParameter(OutputForceVector, bool);
122 +    DeclareParameter(SkinThickness, RealType);
123 +    DeclareParameter(StatFileFormat, std::string);    
124 +    DeclareParameter(HydroPropFile, std::string);
125 +    DeclareParameter(Viscosity, RealType);
126 +    DeclareParameter(BeadSize, RealType);  
127 +    DeclareParameter(UseSphericalBoundaryConditions, bool);
128 +    DeclareParameter(FrozenBufferRadius, RealType);
129 +    DeclareParameter(LangevinBufferRadius, RealType);
130 +    DeclareParameter(AccumulateBoxDipole, bool);
131 +    DeclareParameter(NeighborListNeighbors, int);
132 +    DeclareParameter(UseMultipleTemperatureMethod, bool);
133 +    DeclareParameter(MTM_Ce, RealType);
134 +    DeclareParameter(MTM_G, RealType);
135 +    DeclareParameter(MTM_Io, RealType);
136 +    DeclareParameter(MTM_Sigma, RealType);    
137 +    DeclareParameter(MTM_R, RealType);    
138 +    
139 +  public:
140 +    bool addComponent(Component* comp);
141 +    bool addZConsStamp(ZConsStamp* zcons);
142 +    bool addMoleculeStamp(MoleculeStamp* molStamp);
143 +    int getNComponents() {return components_.size();}
144 +    std::vector<Component*> getComponents() {return components_;}
145 +    Component* getComponentAt(int index) {return components_.at(index);}    
146 +    
147 +    int getNZconsStamps() {return zconstraints_.size();}
148 +    std::vector<ZConsStamp*> getZconsStamps() {return zconstraints_;}
149 +    ZConsStamp* getZconsStampAt(int index) {return zconstraints_.at(index);}    
150 +    
151 +    virtual void validate();
152 +  private:
153 +    
154 +    std::vector<Component*> components_;
155 +    std::vector<ZConsStamp*> zconstraints_;    
156 +    std::map<std::string, MoleculeStamp*> moleculeStamps_;
157 +    std::pair<int, int> taggedAtomPair_;
158  
58 class Globals{
59  
60 public:
61  
62  Globals();
63  ~Globals();
64
65  void initalize();
66  
67  int newComponent( event* the_event );
68  int componentAssign( event* the_event );
69  int componentEnd( event* the_event );
70
71  int newZconstraint( event* the_event );
72  int zConstraintAssign( event* the_event );
73  int zConstraintEnd( event* the_event );
74  
75  int globalAssign( event* the_event );
76  int globalEnd( event* the_event );
77
78  char*  getForceField( void )      { return force_field; }
79  int    getNComponents( void )     { return n_components; }
80  double getTargetTemp( void )      { return target_temp; }
81  double getTargetPressure( void )  { return target_pressure; }
82  double getQmass( void )           { return q_mass; }
83  double getTauThermostat( void )   { return tau_thermostat; }
84  double getTauBarostat( void )     { return tau_barostat; }
85  char*  getEnsemble( void )        { return ensemble; }
86  double getDt( void )              { return dt; }
87  double getRunTime( void )         { return run_time; }
88
89  int    getNzConstraints( void )   { return n_zConstraints; }
90  char*  getInitialConfig( void )   { return initial_config; }
91  char*  getFinalConfig( void )     { return final_config; }
92  int    getNMol( void )            { return n_mol; }
93  double getDensity( void )         { return density; }
94  double getBox( void )             { return box; }
95  double getBoxX( void )            { return box_x; }
96  double getBoxY( void )            { return box_y; }
97  double getBoxZ( void )            { return box_z; }
98  double getSampleTime( void )      { return sample_time; }
99  double getStatusTime( void )      { return status_time; }
100  double getResetTime( void )       { return resetTime; }
101  double getThermalTime( void )     { return thermal_time; }
102  double getDielectric( void )      { return dielectric; }
103  double getRcut( void )            { return rcut; }
104  double getRsw( void )             { return rsw; }
105  int    getTempSet( void )         { return tempSet; }
106  int    getUseInitTime( void )     { return useInitTime; }
107  int    getUseInitXSstate( void )  { return useInitXSstate; }
108  double getOrthoBoxTolerance(void) { return orthoBoxTolerance; }
109  int    getPBC( void )             { return usePBC; }
110  int    getUseRF( void )           { return useRF; }
111  char*  getMixingRule( void)       { return mixingRule; }
112  double getZconsTime(void)         { return zcons_time; }
113  double getZconsTol(void)          { return zcons_tol; }
114  char*  getZconsForcePolicy(void)  { return zconsForcePolicy; }
115  double getZconsGap(void)          { return zcons_gap; }
116  double getZconsFixtime(void)      { return zcons_fixtime; }
117  int    getZconsUsingSMD(void)     { return zcons_using_smd; }
118  int    getSeed(void)              { return seed; }
119  char*  getMinimizer(void)         { return minimizer_name; }
120  int    getMinMaxIter(void)        { return minimizer_maxiteration; }
121  int    getMinWriteFrq(void)       { return minimizer_writefrq; }
122  double getMinStepSize(void)       { return minimizer_stepsize; }
123  double getMinFTol(void)           { return minimizer_ftol; }
124  double getMinGTol(void)           { return minimizer_gtol; }
125  double getMinLSTol(void)          { return minimizer_ls_tol; }
126  int    getMinLSMaxIter(void)      { return minimizer_ls_maxiteration; }
127  int    getUseSolidThermInt(void)  { return useSolidThermInt; }
128  int    getUseLiquidThermInt(void) { return useLiquidThermInt; }
129  double getThermIntLambda(void)   { return thermodynamic_integration_lambda; }
130  double getThermIntK(void)         { return thermodynamic_integration_k; }
131  char*  getForceFieldVariant( void ) { return forcefield_variant; }
132  char* getForceFieldFileName() { return forcefield_filename;}
133  double getDistSpringConst(void)   { return therm_int_dist_spring; }
134  double getThetaSpringConst(void)  { return therm_int_theta_spring; }
135  double getOmegaSpringConst(void)  { return therm_int_omega_spring; }
136  short int haveDt( void )            { return have_dt; }
137  short int haveRunTime( void )       { return have_run_time; }
138  short int haveEnsemble( void )      { return have_ensemble; }
139  short int haveTargetTemp( void )    { return have_target_temp; }
140  short int haveInitialConfig( void ) { return have_initial_config; }
141  short int haveFinalConfig( void )   { return have_final_config; }
142  short int haveNMol( void )          { return have_n_mol; }
143  short int haveDensity( void )       { return have_density; }
144  short int haveBox( void )           { return have_box; }
145  short int haveBoxX( void )          { return have_box_x; }
146  short int haveBoxY( void )          { return have_box_y; }
147  short int haveBoxZ( void )          { return have_box_z; }
148  short int haveSampleTime( void )    { return have_sample_time; }
149  short int haveResetTime( void )     { return have_reset_time; }
150  short int haveStatusTime( void )    { return have_status_time; }
151  short int haveThermalTime( void )   { return have_thermal_time; }
152  short int haveRcut( void )          { return have_rcut; }
153  short int haveRsw( void )           { return have_rsw; }
154  short int haveDielectric( void )    { return have_dielectric; }
155  short int haveTempSet( void )       { return have_tempSet; }
156  short int haveTargetPressure( void ){ return have_target_pressure; }
157  short int haveQmass( void )         { return have_q_mass; }
158  short int haveTauThermostat( void ) { return have_tau_thermostat; }
159  short int haveTauBarostat( void )   { return have_tau_barostat; }
160  short int haveZconstraintTime(void) { return have_zcons_time; }
161  short int haveZconstraints( void )  { return have_zConstraints; }
162  short int haveZconsTol(void)        { return have_zcons_tol; }
163  short int haveZconsForcePolicy(void){ return have_zcons_force_policy; }
164  short int haveZConsGap(void)        { return have_zcons_gap; }
165  short int haveZConsFixTime(void)    { return have_zcons_fixtime; }
166  short int haveZConsUsingSMD(void)   { return have_zcons_using_smd; }  
167  short int haveSeed(void)            { return have_seed; }
168  short int haveMinimizer(void)       { return have_minimizer; }
169  short int haveMinMaxIter(void)      { return have_minimizer_maxiteration; }
170  short int haveMinWriteFrq(void)     { return have_minimizer_writefrq; }
171  short int haveMinStepSize(void)     { return have_minimizer_stepsize; }
172  short int haveMinFTol(void)         { return have_minimizer_ftol; }
173  short int haveMinGTol(void)         { return have_minimizer_gtol; }
174  short int haveMinLSTol(void)        { return have_minimizer_ls_tol; }
175  short int haveMinLSMaxIter(void)    { return have_minimizer_ls_maxiteration;}
176  short int haveThermIntLambda(void)  { return have_thermodynamic_integration_lambda; }
177  short int haveThermIntK(void)    { return have_thermodynamic_integration_k; }
178  short int haveForceFieldVariant(void) { return have_forcefield_variant; }
179  short int haveForceFieldFileName(void) { return have_forcefield_filename; }
180  short int haveDistSpringConst(void) { return have_dist_spring_constant; }
181  short int haveThetaSpringConst(void) { return have_theta_spring_constant; }
182  short int haveOmegaSpringConst(void) { return have_omega_spring_constant; }
183  /* other accessors */
184  Component** getComponents( void )   { return components; }
185  ZconStamp** getZconStamp( void )    { return zConstraints; }
186  
187 private:
188  
189  int hash_size;
190  int hash_shift;
191  int hash( char* text );
192  void addHash( char* text, int token );
193  LinkedCommand** command_table;
194  
195  char* checkMe( void );
196  
197  Component* current_component;
198  Component** components; // the array of components
199
200  ZconStamp* current_zConstraint;
201  ZconStamp** zConstraints; // the array of zConstraints
202
203  char force_field[100];
204  int n_components;
205  int n_zConstraints;
206  double target_temp;
207  double target_pressure;
208  char ensemble[100];
209  char mixingRule[100];
210  double dt;
211  double run_time;
212  char initial_config[120];
213  char final_config[120];
214  int n_mol;
215  double density;
216  double box;
217  double box_x, box_y, box_z;
218  double sample_time;
219  double status_time;
220  double resetTime;
221  double orthoBoxTolerance;
222  double thermal_time;
223  double rcut;
224  double rsw;
225  double dielectric;
226  int tempSet;
227  int useInitTime;
228  int useInitXSstate;
229  int usePBC;
230  int useRF;
231  double q_mass;
232  double tau_thermostat;
233  double tau_barostat;
234  double zcons_time;    
235  double zcons_tol;
236  char zconsForcePolicy[100];
237  double zcons_gap;
238  double zcons_fixtime;
239  int zcons_using_smd;
240  
241  int seed;
242  char minimizer_name[100];
243  int minimizer_maxiteration;
244  int minimizer_writefrq;
245  double minimizer_stepsize;
246  double minimizer_ftol;
247  double minimizer_gtol;
248  double minimizer_ls_tol;
249  int minimizer_ls_maxiteration;
250  int useSolidThermInt;
251  int useLiquidThermInt;
252  double thermodynamic_integration_lambda;
253  double thermodynamic_integration_k;
254  char forcefield_variant[100];
255  char forcefield_filename[100];
256  double therm_int_dist_spring;
257  double therm_int_theta_spring;
258  double therm_int_omega_spring;
259  //required arguments
260  short int have_force_field, have_n_components, have_target_temp;
261  short int have_target_pressure, have_ensemble, have_dt, have_run_time;
262  
263  // optional arguments
264  short int have_initial_config, have_final_config, have_n_mol;
265  short int have_density, have_box, have_box_x, have_box_y, have_box_z;
266  short int have_sample_time, have_status_time, have_rcut, have_dielectric;
267  short int have_tempSet, have_thermal_time, have_rsw, have_q_mass;
268  short int have_tau_thermostat, have_tau_barostat;
269  short int have_zcons_time, have_zConstraints, have_n_zConstraints;
270  short int have_zcons_tol, have_seed;
271  short int have_zcons_force_policy, have_reset_time;
272  short int have_zcons_gap, have_zcons_fixtime;
273  short int have_zcons_using_smd;
274  short int have_minimizer, have_minimizer_maxiteration;
275  short int have_minimizer_writefrq, have_minimizer_stepsize;
276  short int have_minimizer_ftol, have_minimizer_gtol;
277  short int have_minimizer_ls_tol, have_minimizer_ls_maxiteration;
278  short int have_thermodynamic_integration_lambda;
279  short int have_thermodynamic_integration_k;
280  short int have_forcefield_variant;
281  short int have_forcefield_filename;  
282  short int have_dist_spring_constant;
283  short int have_theta_spring_constant;
284  short int have_omega_spring_constant;
159   };
160 <
160 > }
161   #endif
162 +

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines