Hunch.h

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     //GReal_t e;
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 } } } } } // namespace gridripper::phys::gr::fixmp::kerrkgaxhyp
00085 
00086 
00087 #endif /* gridripper_phys_gr_fixmp_kerrkgaxhyp_Hunch_h */