ParameterParser.h

00001 #ifndef gridripper_odesolver_shoot_ParameterParser_h
00002 #define gridripper_odesolver_shoot_ParameterParser_h
00003 
00004 #include <gridripper/lang/IllegalArgumentException.h>
00005 #include <gridripper/tvalarray.h>
00006 #include <gridripper/odesolver/ODE.h>
00007 #include <gridripper/util/GrrProperties.h>
00008 #include <gridripper/Parameters.h>
00009 #include <gridripper/util/ParameterPreprocessor.h>
00010 #include <string>
00011 
00012 namespace gridripper { namespace odesolver { namespace shoot {
00013 
00014 class ODEIntegrator;
00015 using namespace gridripper::util;
00016 
00017 using namespace std;
00018 
00026 class ParameterParser
00027 {
00028 public:
00029     //
00030     // ODE
00031     //
00032 
00034     ODE* ode;
00035 
00036     //
00037     // Numerical method and parameters
00038     //
00040     ODEIntegrator* odeIntegrator;
00041 
00043     double dx;
00044 
00046     bool dxSet;
00047 
00052     int subSteps;
00053 
00055     bool subStepsSet;
00056 
00057     //
00058     // Output file contents and format
00059     //
00060 
00064     string dataFormat;
00065 
00066 private:
00067     const GrrProperties& properties;
00068     Parameters* unprocessedParameters;
00069 
00070 public:
00075     ParameterParser(const GrrProperties& props);
00076 
00077     ~ParameterParser();
00078 
00082     void parse() throw(IllegalArgumentException&);
00083 
00084 protected:
00089     string* getParameter(string key) const;
00090 
00091 private:
00092     ParameterPreprocessor* createPreprocessor() const;
00093 };
00094 
00095 } } } // namespace gridripper::odesolver::shoot
00096 
00097 #endif /* gridripper_odesolver_shoot_ParameterParser_h */

Generated on Wed Jun 17 18:46:47 2009 for GridRipper by  doxygen 1.5.6