QuarticSymmBreaking.h
00001 #ifndef gridripper_phys_scalar_QuarticSymmBreaking_h
00002 #define gridripper_phys_scalar_QuarticSymmBreaking_h
00003
00004 #include "ScalarPotential.h"
00005 #include <gridripper/lang/IllegalArgumentException.h>
00006
00007 namespace gridripper {
00008
00009 class Parameters;
00010
00011 namespace phys { namespace scalar {
00012
00013 using namespace std;
00014
00023 class QuarticSymmBreaking: public ScalarPotential
00024 {
00025 private:
00026 GReal_t lambda;
00027 GReal_t sigmaSq;
00028 GReal_t C;
00029
00030 public:
00037 QuarticSymmBreaking(const string& str, const Parameters& p)
00038 throw(IllegalArgumentException&);
00039
00046 GReal_t eval_V(GReal_t psi, GReal_t T) {
00047 double psisq = psi*psi;
00048 GReal_t w = psisq - sigmaSq;
00049 return 0.5*(lambda*w*w + C*T*T*psisq);
00050 }
00051
00058 GReal_t eval_dVdpsi(GReal_t psi, GReal_t T) {
00059 double w = psi*psi - sigmaSq;
00060 return 2*lambda*w*psi + C*T*T*psi;
00061 }
00062
00067 GReal_t get_lambda() const {
00068 return lambda;
00069 }
00070
00075 GReal_t get_C() const {
00076 return C;
00077 }
00078 };
00079
00080 } } }
00081
00082 #endif