Skip to content

Commit

Permalink
Merge branch 'feature-2.0' into feature-2.0-semianalytic-solver
Browse files Browse the repository at this point in the history
  • Loading branch information
Dylan Harries committed Mar 13, 2017
2 parents 3e2658b + e3d3ed5 commit 6992028
Show file tree
Hide file tree
Showing 19 changed files with 57 additions and 59 deletions.
2 changes: 1 addition & 1 deletion README
Expand Up @@ -19,7 +19,7 @@ Requirements
* C++ compiler (g++ >= 4.7.2 or clang++ >= 3.1 or icpc >= 12.1)
* Fortran compiler (gfortran, ifort)
* Mathematica (version 7.0 or higher)
* SARAH (version 4.0.4 or higher) http://sarah.hepforge.org
* SARAH (version 4.10.2 or higher) http://sarah.hepforge.org
* Boost (version 1.37.0 or higher) http://www.boost.org
* Eigen 3 (version 3.1 or higher) http://eigen.tuxfamily.org
* GNU scientific library http://www.gnu.org/software/gsl/
Expand Down
4 changes: 2 additions & 2 deletions configure
Expand Up @@ -239,8 +239,8 @@ required_mathematica_version="7"

# required SARAH version
required_sarah_major="4"
required_sarah_minor="0"
required_sarah_patch="4"
required_sarah_minor="10"
required_sarah_patch="2"
required_sarah_version="${required_sarah_major}.${required_sarah_minor}.${required_sarah_patch}"
SARAH_VERSION="unknown"
SARAH_MAJOR="0"
Expand Down
1 change: 1 addition & 0 deletions meta/FlexibleSUSY.m
Expand Up @@ -109,6 +109,7 @@ FlexibleSUSY model file (FlexibleSUSY.m).
MZMSbar;
MWMSbar;
EDRbar;
EMSbar;
ThetaWDRbar;
SCALE;
THRESHOLD;
Expand Down
5 changes: 0 additions & 5 deletions model_files/CMSSMNoFV/FlexibleSUSY.m.in
Expand Up @@ -197,8 +197,3 @@ SMParticles = {
Fu, Fd, Fc, Fs, Ft, Fb, Fe, Fm, Ftau, Fve, Fvm, Fvt,
gG, gP, gZ, gWm, gWmC
};

SA`Casimir[Ss, SARAH`color] = 4/3;
SA`Casimir[Sc, SARAH`color] = 4/3;
SA`Casimir[Sb, SARAH`color] = 4/3;
SA`Casimir[St, SARAH`color] = 4/3;
5 changes: 0 additions & 5 deletions model_files/MSSMNoFV/FlexibleSUSY.m.in
Expand Up @@ -224,8 +224,3 @@ SMParticles = {
VectorP, VectorZ, VectorG, VectorW,
Fu, Fd, Fc, Fs, Ft, Fb, Fe, Fm, Ftau, Fve, Fvm, Fvt
};

SA`Casimir[Ss, SARAH`color] = 4/3;
SA`Casimir[Sc, SARAH`color] = 4/3;
SA`Casimir[Sb, SARAH`color] = 4/3;
SA`Casimir[St, SARAH`color] = 4/3;
5 changes: 0 additions & 5 deletions model_files/MSSMNoFVSLHA2/FlexibleSUSY.m.in
Expand Up @@ -176,8 +176,3 @@ SMParticles = {
VectorP, VectorZ, VectorG, VectorW,
Fu, Fd, Fc, Fs, Ft, Fb, Fe, Fm, Ftau, Fve, Fvm, Fvt
};

SA`Casimir[Ss, SARAH`color] = 4/3;
SA`Casimir[Sc, SARAH`color] = 4/3;
SA`Casimir[Sb, SARAH`color] = 4/3;
SA`Casimir[St, SARAH`color] = 4/3;
5 changes: 0 additions & 5 deletions model_files/MSSMNoFVatMGUT/FlexibleSUSY.m.in
Expand Up @@ -218,8 +218,3 @@ SMParticles = {
VectorP, VectorZ, VectorG, VectorW,
Fu, Fd, Fc, Fs, Ft, Fb, Fe, Fm, Ftau, Fve, Fvm, Fvt
};

SA`Casimir[Ss, SARAH`color] = 4/3;
SA`Casimir[Sc, SARAH`color] = 4/3;
SA`Casimir[Sb, SARAH`color] = 4/3;
SA`Casimir[St, SARAH`color] = 4/3;
5 changes: 0 additions & 5 deletions model_files/MSSMNoFVtower/FlexibleSUSY.m.in
Expand Up @@ -234,8 +234,3 @@ SMParticles = {
VectorP, VectorZ, VectorG, VectorW,
Fu, Fd, Fc, Fs, Ft, Fb, Fe, Fm, Ftau, Fve, Fvm, Fvt
};

SA`Casimir[Ss, SARAH`color] = 4/3;
SA`Casimir[Sc, SARAH`color] = 4/3;
SA`Casimir[Sb, SARAH`color] = 4/3;
SA`Casimir[St, SARAH`color] = 4/3;
2 changes: 1 addition & 1 deletion src/wrappers.hpp
Expand Up @@ -43,7 +43,7 @@
namespace flexiblesusy {

static constexpr double Pi = M_PI;
static constexpr double oneOver16PiSqr = 1./(16. * M_PI * M_PI);
static constexpr double oneOver16PiSqr = 1./(16. * Pi * Pi);
static constexpr double oneLoop = oneOver16PiSqr;
static constexpr double twoLoop = oneOver16PiSqr * oneOver16PiSqr;
static constexpr double threeLoop = oneOver16PiSqr * oneOver16PiSqr * oneOver16PiSqr;
Expand Down
3 changes: 2 additions & 1 deletion templates/librarylink.cpp.in
Expand Up @@ -690,14 +690,15 @@ void Model_data_impl<Solver_type>::calculate_spectrum()
scales.HighScale = spectrum_generator.get_high_scale();
scales.SUSYScale = spectrum_generator.get_susy_scale();
scales.LowScale = spectrum_generator.get_low_scale();
scales.pole_mass_scale = spectrum_generator.get_pole_mass_scale();
}

/******************************************************************/

template <typename Solver_type>
void Model_data_impl<Solver_type>::calculate_model_observables()
{
observables = calculate_observables(std::get<0>(models), qedqcd, physical_input);
observables = calculate_observables(std::get<0>(models), qedqcd, physical_input, scales.pole_mass_scale);
}

/******************************************************************/
Expand Down
11 changes: 11 additions & 0 deletions templates/observables.cpp.in
Expand Up @@ -77,6 +77,17 @@ void @ModelName@_observables::set(const Eigen::ArrayXd& vec)
@setObservables@
}

@ModelName@_observables calculate_observables(const @ModelName@_mass_eigenstates& model,
const softsusy::QedQcd& qedqcd,
const Physical_input& physical_input,
double scale)
{
auto model_at_scale = model;
model_at_scale.run_to(scale);

return calculate_observables(model_at_scale, qedqcd, physical_input);
}

@ModelName@_observables calculate_observables(const @ModelName@_mass_eigenstates& model,
const softsusy::QedQcd& qedqcd,
const Physical_input& physical_input)
Expand Down
8 changes: 7 additions & 1 deletion templates/observables.hpp.in
Expand Up @@ -46,7 +46,13 @@ struct @ModelName@_observables {
@observablesDef@
};

@ModelName@_observables calculate_observables(const @ModelName@_mass_eigenstates&, const softsusy::QedQcd&, const Physical_input&);
@ModelName@_observables calculate_observables(
const @ModelName@_mass_eigenstates&, const softsusy::QedQcd&,
const Physical_input&);

@ModelName@_observables calculate_observables(
const @ModelName@_mass_eigenstates&, const softsusy::QedQcd&,
const Physical_input&, double scale);

} // namespace flexiblesusy

Expand Down
3 changes: 2 additions & 1 deletion templates/run.cpp.in
Expand Up @@ -83,10 +83,11 @@ int run_solver(flexiblesusy::@ModelName@_slha_io& slha_io,
scales.HighScale = spectrum_generator.get_high_scale();
scales.SUSYScale = spectrum_generator.get_susy_scale();
scales.LowScale = spectrum_generator.get_low_scale();
scales.pole_mass_scale = spectrum_generator.get_pole_mass_scale();

@ModelName@_observables observables;
if (spectrum_generator_settings.get(Spectrum_generator_settings::calculate_observables))
observables = calculate_observables(std::get<0>(models), qedqcd, physical_input);
observables = calculate_observables(std::get<0>(models), qedqcd, physical_input, scales.pole_mass_scale);

const bool show_result = !problems.have_problem() ||
spectrum_generator_settings.get(Spectrum_generator_settings::force_output);
Expand Down
3 changes: 2 additions & 1 deletion templates/run_cmd_line.cpp.in
Expand Up @@ -94,9 +94,10 @@ int run_solver(const @ModelName@_input_parameters& input)
scales.HighScale = spectrum_generator.get_high_scale();
scales.SUSYScale = spectrum_generator.get_susy_scale();
scales.LowScale = spectrum_generator.get_low_scale();
scales.pole_mass_scale = spectrum_generator.get_pole_mass_scale();

const auto observables = calculate_observables(
model, qedqcd, physical_input);
model, qedqcd, physical_input, scales.pole_mass_scale);

// SLHA output
SLHAea::Coll slhaea(@ModelName@_slha_io::fill_slhaea(
Expand Down
4 changes: 2 additions & 2 deletions templates/slha_io.hpp.in
Expand Up @@ -60,8 +60,8 @@ template <class T>
class @ModelName@;

struct @ModelName@_scales {
@ModelName@_scales() : HighScale(0.), SUSYScale(0.), LowScale(0.) {}
double HighScale, SUSYScale, LowScale;
double HighScale{0.}, SUSYScale{0.}, LowScale{0.};
double pole_mass_scale{0.};
};

class @ModelName@_slha_io {
Expand Down
Expand Up @@ -113,9 +113,9 @@ void @ModelName@_standard_model_initial_guesser<Two_scale>::guess_eft_parameters
// guess gauge couplings at mt
const auto alpha_sm(leAtMt.getGaugeMu(mtpole, sinThetaW2));

eft->set_g1(sqrt(4.0 * M_PI * alpha_sm(0)));
eft->set_g2(sqrt(4.0 * M_PI * alpha_sm(1)));
eft->set_g3(sqrt(4.0 * M_PI * alpha_sm(2)));
eft->set_g1(sqrt(4.0 * Pi * alpha_sm(0)));
eft->set_g2(sqrt(4.0 * Pi * alpha_sm(1)));
eft->set_g3(sqrt(4.0 * Pi * alpha_sm(2)));
eft->set_scale(mtpole);

eft->set_v(246.22);
Expand Down
Expand Up @@ -107,9 +107,9 @@ void @ModelName@_standard_model_initial_guesser<Two_scale>::guess_eft_parameters
// guess gauge couplings at mt
const auto alpha_sm(leAtMt.getGaugeMu(mtpole, sinThetaW2));

eft->set_g1(sqrt(4.0 * M_PI * alpha_sm(0)));
eft->set_g2(sqrt(4.0 * M_PI * alpha_sm(1)));
eft->set_g3(sqrt(4.0 * M_PI * alpha_sm(2)));
eft->set_g1(sqrt(4.0 * Pi * alpha_sm(0)));
eft->set_g2(sqrt(4.0 * Pi * alpha_sm(1)));
eft->set_g3(sqrt(4.0 * Pi * alpha_sm(2)));
eft->set_scale(mtpole);

eft->set_v(246.22);
Expand Down
32 changes: 17 additions & 15 deletions templates/two_scale_low_scale_constraint.cpp.in
Expand Up @@ -53,10 +53,12 @@ namespace flexiblesusy {
#define SCALE model->get_scale()
#define MODEL model
#define MODELCLASSNAME @ModelName@<Two_scale>
#define MWMSbar mWrun
#define MWDRbar mWrun
#define MZMSbar mZrun
#define MZDRbar mZrun
#define MWMSbar mW_run
#define MWDRbar mW_run
#define MZMSbar mZ_run
#define MZDRbar mZ_run
#define EDRbar e_run
#define EMSbar e_run
#define CKM ckm
#define PMNS pmns
#define THETAW theta_w
Expand Down Expand Up @@ -138,10 +140,10 @@ void @ModelName@_low_scale_constraint<Two_scale>::clear()
ckm.setIdentity();
pmns.setIdentity();
neutrinoDRbar.setZero();
mWrun = 0.;
mZrun = 0.;
mW_run = 0.;
mZ_run = 0.;
AlphaS = 0.;
EDRbar = 0.;
e_run = 0.;
ThetaWDRbar = 0.;
new_g1 = 0.;
new_g2 = 0.;
Expand All @@ -159,10 +161,10 @@ void @ModelName@_low_scale_constraint<Two_scale>::initialize()
ckm = qedqcd.get_complex_ckm();
pmns = qedqcd.get_complex_pmns();
neutrinoDRbar = Eigen::Matrix<double,3,3>::Zero();
mWrun = 0.;
mZrun = 0.;
mW_run = 0.;
mZ_run = 0.;
AlphaS = 0.;
EDRbar = 0.;
e_run = 0.;
ThetaWDRbar = 0.;
new_g1 = 0.;
new_g2 = 0.;
Expand Down Expand Up @@ -206,16 +208,16 @@ void @ModelName@_low_scale_constraint<Two_scale>::calculate_threshold_correction
const double e_drbar = Sqrt(4.0 * Pi * alpha_em_drbar);

// interface variables
mZrun = mz_pole;
mWrun = mw_pole;
mZ_run = mz_pole;
mW_run = mw_pole;

if (model->get_thresholds()) {
mZrun = model->calculate_M@VectorZ@_DRbar(mz_pole);
mWrun = model->calculate_M@VectorW@_DRbar(mw_pole);
mZ_run = model->calculate_M@VectorZ@_DRbar(mz_pole);
mW_run = model->calculate_M@VectorW@_DRbar(mw_pole);
}

AlphaS = alpha_s_drbar;
EDRbar = e_drbar;
e_run = e_drbar;
ThetaWDRbar = calculate_theta_w(alpha_em_drbar);
}

Expand Down
6 changes: 3 additions & 3 deletions templates/two_scale_low_scale_constraint.hpp.in
Expand Up @@ -61,10 +61,10 @@ private:
Eigen::Matrix<std::complex<double>,3,3> ckm{Eigen::Matrix<std::complex<double>,3,3>::Identity()};
Eigen::Matrix<std::complex<double>,3,3> pmns{Eigen::Matrix<std::complex<double>,3,3>::Identity()};
Eigen::Matrix<double,3,3> neutrinoDRbar{Eigen::Matrix<double,3,3>::Zero()};
double mWrun{0.};
double mZrun{0.};
double mW_run{0.};
double mZ_run{0.};
double AlphaS{0.};
double EDRbar{0.};
double e_run{0.};
double ThetaWDRbar{0.};
double new_g1{0.}, new_g2{0.}, new_g3{0.};
double self_energy_w_at_mw{0.};
Expand Down

0 comments on commit 6992028

Please sign in to comment.