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     // The field is f=(phi-phi0)*r if selfinteraction is on, 
00046     // otherwise f=phi*r.
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 } } } } } // namespace gridripper::phys::gr::fixmp::higgsmp
00084 
00085 
00086 #endif /* gridripper_phys_gr_fixmp_higgsmp_Hunch_h */

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