ODERelaxInit.h

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

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