ODEShootInit.h

00001 #ifndef gridripper_amr1d_initcond_ODEShootInit_h
00002 #define gridripper_amr1d_initcond_ODEShootInit_h
00003 
00004 #include "UserDef.h"
00005 #include <gridripper/util/GrrProperties.h>
00006 #include <gridripper/Parameters.h>
00007 #include <gridripper/odesolver/ODE.h>
00008 #include <gridripper/tvector.h>
00009 
00010 namespace gridripper { namespace amr1d { namespace initcond {
00011 
00012 using namespace gridripper;
00013 using namespace gridripper::util;
00014 using namespace gridripper::amr1d;
00015 using namespace gridripper::odesolver;
00016 
00024 class ODEShootInit: public UserDef
00025 {
00026 private:
00027     GrrProperties properties;
00028 
00029     tvector<GReal_t> data;
00030 
00031     GReal_t minX;
00032 
00033     GReal_t maxX;
00034 
00035     int maxi;
00036 
00037     ODE* ode;
00038 
00039     string message;
00040 
00041 public:
00048     ODEShootInit(string& args, const Parameters* p, const PDE& pde)
00049             throw(IllegalArgumentException&);
00050 
00051 public:
00056     string getMessage() {
00057         return message;
00058     }
00059 
00060 protected:
00067     void init(PDE* pde, GReal_t x, FieldWrapper& phi)
00068         throw(InitCond::Exception&);
00069 
00070     void endInit();
00071 
00072 private:
00073     void init(const PDE* pde) throw(InitCond::Exception&);
00074 };
00075 
00076 } } } // namespace gridripper::amr1d::initcond
00077 
00078 #endif /* gridripper_amr1d_initcond_ODEShootInit_h */

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