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 603 by chrisfen, Fri Sep 16 16:07:39 2005 UTC vs.
Revision 1147 by chuckv, Wed Jul 4 04:47:53 2007 UTC

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines