Hunch.h

00001 #ifndef gridripper_phys_gr_fixmp_kerrhiggs_Hunch_h
00002 #define gridripper_phys_gr_fixmp_kerrhiggs_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 kerrhiggs {
00013 
00014 
00015 using namespace gridripper;
00016 using namespace gridripper::util;
00017 using namespace gridripper::amr1d;
00018 using namespace std;
00019 
00020 
00029 class Hunch: public FuncInitCond
00030 {
00031 private:
00033     int maxOrder;
00035     int arraySize;
00036 
00038     bool selfInteraction;
00043     GReal_t phi0;
00044     // The field is f=(phi-phi0)*r if selfinteraction is on, 
00045     // otherwise f=phi*r.
00046 
00048     GReal_t amplitudeF, centerF, widthF, rampF;
00050     int lF, mF;
00052     GReal_t amplitudeFt, centerFt, widthFt, rampFt;
00054     int lFt, mFt;
00055 
00057     GReal_t M;
00058     GReal_t a;
00059     GReal_t e;
00060     bool isMinkowski;
00061 
00063     GReal_t minrh;
00064     GReal_t maxrh;
00065 
00067     GReal_t t0;
00068 
00070     string message;
00071 
00072 public:
00073     Hunch(string& args, const Parameters* p, const PDE& pde)
00074           throw(InitCond::Exception&, IllegalArgumentException&);
00075     ~Hunch();
00076     GReal_t getTime() const;
00077 
00078     void init(PDE* pde, GReal_t rh, FieldWrapper& v)
00079         throw(InitCond::Exception&);
00080 
00081     string getMessage() const;
00082 };
00083 
00084 
00085 } } } } } // namespace gridripper::phys::gr::fixmp::kerrhiggs
00086 
00087 
00088 #endif /* gridripper_phys_gr_fixmp_kerrhiggs_Hunch_h */

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