00001 #ifndef gridripper_phys_gr_fixmp_schkghyp_Hunch_h
00002 #define gridripper_phys_gr_fixmp_schkghyp_Hunch_h
00003
00004
00005 #include <gridripper/Parameters.h>
00006 #include <gridripper/amr1d/FuncInitCond.h>
00007 #include <gridripper/amr1d/PDE.h>
00008 #include <gridripper/amr1d/FuncInitCond.h>
00009
00010
00011 namespace gridripper { namespace phys { namespace gr { namespace fixmp {
00012 namespace schkghyp {
00013
00014
00015 using namespace gridripper;
00016 using namespace gridripper::util;
00017 using namespace gridripper::amr1d;
00018 using namespace std;
00019
00021
00022
00032 class Hunch: public FuncInitCond
00033 {
00034 private:
00036 int maxOrder;
00038 int arraySize;
00039
00041 GReal_t amplitudeF, centerF, widthF, rampF;
00043
00045 GReal_t amplitudeFt, centerFt, widthFt, rampFt;
00047
00049 GReal_t omega;
00050
00052 GReal_t M;
00053
00054 bool isMinkowski;
00055
00057 GReal_t minR;
00058 GReal_t maxR;
00059
00061 GReal_t T0;
00062
00064 string message;
00065
00066
00067 GReal_t *f, *fT;
00068
00069 public:
00070 Hunch(string& args, const Parameters* p, const PDE& pde)
00071 throw(InitCond::Exception&, IllegalArgumentException&);
00072 ~Hunch();
00073 GReal_t getTime() const;
00074
00075 void init(PDE* pde, GReal_t R, FieldWrapper& v)
00076 throw(InitCond::Exception&);
00077
00078 string getMessage() const;
00079 };
00080
00081
00082 } } } } }
00083
00084
00085 #endif