00001 #ifndef gridripper_phys_gr_fixmp_kerrkgaxhyp_Hunch_h
00002 #define gridripper_phys_gr_fixmp_kerrkgaxhyp_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 kerrkgaxhyp {
00013
00014
00015 using namespace gridripper;
00016 using namespace gridripper::util;
00017 using namespace gridripper::amr1d;
00018 using namespace std;
00019
00020
00030 class Hunch: public FuncInitCond
00031 {
00032 private:
00034 int maxOrder;
00036 int arraySize;
00037
00038
00039
00041 GReal_t amplitudeF, centerF, widthF, rampF;
00043 int lF, mF;
00045 GReal_t amplitudeFt, centerFt, widthFt, rampFt;
00047 int lFt, mFt;
00048 int Ym,absYm;
00049 int parity;
00051 GReal_t omega;
00052
00054 GReal_t M;
00055 GReal_t A;
00056
00057 bool isMinkowski;
00058
00060 GReal_t minR;
00061 GReal_t maxR;
00062
00064 GReal_t T0;
00065
00067 string message;
00068
00069 GReal_t *f, *fT;
00070
00071 public:
00072 Hunch(string& args, const Parameters* p, const PDE& pde)
00073 throw(InitCond::Exception&, IllegalArgumentException&);
00074 ~Hunch();
00075 GReal_t getTime() const;
00076
00077 void init(PDE* pde, GReal_t R, FieldWrapper& v)
00078 throw(InitCond::Exception&);
00079
00080 string getMessage() const;
00081 };
00082
00083
00084 } } } } }
00085
00086
00087 #endif