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 } } } // namespace gridripper::phys::scalar
00081 
00082 #endif /* gridripper_phys_scalar_QuarticSymmBreaking_h */

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