Hunch.h
00001 #ifndef gridripper_phys_gr_fixmp_higgsmp_Hunch_h
00002 #define gridripper_phys_gr_fixmp_higgsmp_Hunch_h
00003
00004
00005 #include <gridripper/Parameters.h>
00006 #include <gridripper/amr1d/FuncInitCond.h>
00007 #include <gridripper/amr1d/PDE.h>
00008 #include <gridripper/metric/MetricFactory.h>
00009
00010
00011 namespace gridripper { namespace phys { namespace gr { namespace fixmp {
00012 namespace higgsmp {
00013
00014
00015 using namespace gridripper;
00016 using namespace gridripper::util;
00017 using namespace gridripper::metric;
00018 using namespace gridripper::amr1d;
00019 using namespace std;
00020
00021
00030 class Hunch: public FuncInitCond
00031 {
00032 private:
00034 int maxOrder;
00036 int arraySize;
00037
00039 bool selfInteraction;
00044 GReal_t phi0;
00045
00046
00047
00049 GReal_t amplitudeF, centerF, widthF, rampF;
00051 int lF, mF;
00053 GReal_t amplitudeFtau, centerFtau, widthFtau, rampFtau;
00055 int lFtau, mFtau;
00056
00058 Metric *metric;
00059 MetricValues g;
00060
00062 GReal_t tau0;
00063
00065 GReal_t kappa;
00066
00068 string message;
00069
00070 public:
00071 Hunch(string& args, const Parameters* p, const PDE& pde)
00072 throw(InitCond::Exception&, IllegalArgumentException&);
00073 ~Hunch();
00074 GReal_t getTime() const;
00075
00076 void init(PDE* pde, GReal_t rho, FieldWrapper& v)
00077 throw(InitCond::Exception&);
00078
00079 string getMessage() const;
00080 };
00081
00082
00083 } } } } }
00084
00085
00086 #endif