00001 #ifndef gridripper_main_grrodeshoot_h
00002 #define gridripper_main_grrodeshoot_h
00003
00004 #include <gridripper/config.h>
00005 #include <gridripper/odesolver/ODE.h>
00006 #include <gridripper/odesolver/shoot/ODEShoot.h>
00007 #include <gridripper/io/IOException.h>
00008 #include <gridripper/lang/IllegalArgumentException.h>
00009 #include <gridripper/tvalarray.h>
00010 #include <string>
00011
00012 namespace gridripper {
00013
00014 using namespace gridripper;
00015 using namespace gridripper::io;
00016 using namespace gridripper::odesolver;
00017 using namespace gridripper::odesolver::shoot;
00018 using namespace std;
00019
00027 class Main
00028 {
00029 private:
00030 ODEShoot* odeShoot;
00031
00032 public:
00037 Main(const string& f) throw(IOException&, IllegalArgumentException&);
00038
00042 void solve();
00043
00044 private:
00045 static void printFields(ostream& out, const tvalarray<string>& funcfmt,
00046 GReal_t x, tvalarray<GReal_t>& F, unsigned nc,
00047 int i, ODE& ode);
00048
00049 string getHeader(ODE& ode, const string& xfmt,
00050 const tvalarray<string>& funcfmt);
00051 };
00052
00053 }
00054
00055 #endif