Skip to content

Commit

Permalink
Throw exception if model pointer is not set
Browse files Browse the repository at this point in the history
rather than using asserts
  • Loading branch information
Dylan Harries committed Jan 23, 2017
1 parent a12f89d commit 478daaa
Show file tree
Hide file tree
Showing 8 changed files with 66 additions and 54 deletions.
21 changes: 14 additions & 7 deletions templates/semi_analytic_high_scale_constraint.cpp.in
Expand Up @@ -30,11 +30,12 @@
#include "threshold_loop_functions.hpp"
#include "numerics2.hpp"

#include <cassert>
#include <cmath>
#include <cerrno>
#include <cstring>

namespace flexiblesusy {

#define DERIVEDPARAMETER(p) model->p()
#define EXTRAPARAMETER(p) model->get_##p()
#define INPUTPARAMETER(p) model->get_input().p
Expand Down Expand Up @@ -66,8 +67,7 @@

void @ModelName@_high_scale_constraint<Semi_analytic>::apply()
{
assert(model && "Error: @ModelName@_high_scale_constraint<Semi_analytic>::"
"apply():model pointer must not be zero");
check_model_ptr();

@temporarySetting@

Expand Down Expand Up @@ -109,17 +109,15 @@ void @ModelName@_high_scale_constraint<Semi_analytic>::clear()

void @ModelName@_high_scale_constraint<Semi_analytic>::initialize()
{
assert(model && "@ModelName@_high_scale_constraint<Semi_analytic>::"
"initialize(): model pointer is zero.");
check_model_ptr();

@scaleGuess@
scale = initial_scale_guess;
}

void @ModelName@_high_scale_constraint<Semi_analytic>::update_scale()
{
assert(model && "@ModelName@_high_scale_constraint<Semi_analytic>::"
"update_scale(): model pointer is zero.");
check_model_ptr();

const double currentScale = model->get_scale();
const @ModelName@_soft_parameters beta_functions(model->calc_beta());
Expand All @@ -140,4 +138,13 @@ void @ModelName@_high_scale_constraint<Semi_analytic>::update_scale()

@restrictScale@
@updateSemiAnalyticConstraint@
}

void @ModelName@_high_scale_constraint<Semi_analytic>::check_model_ptr() const
{
if (!model)
throw SetupError("@ModelName@_high_scale_constraint<Semi_analytic>: "
"model pointer is zero!");
}

} // namespace flexiblesusy
2 changes: 2 additions & 0 deletions templates/semi_analytic_high_scale_constraint.hpp.in
Expand Up @@ -59,6 +59,8 @@ private:
double initial_scale_guess{0.};
@ModelName@<Semi_analytic>* model{nullptr};
@semiAnalyticConstraint@

void check_model_ptr() const;
};

} // namespace flexiblesusy
Expand Down
52 changes: 23 additions & 29 deletions templates/semi_analytic_low_scale_constraint.cpp.in
Expand Up @@ -30,7 +30,6 @@
#include "threshold_loop_functions.hpp"
#include "weinberg_angle.hpp"

#include <cassert>
#include <cmath>
#include <limits>

Expand Down Expand Up @@ -74,8 +73,7 @@ namespace flexiblesusy {

void @ModelName@_low_scale_constraint<Semi_analytic>::apply()
{
assert(model && "Error: @ModelName@_low_scale_constraint<Semi_analytic>::"
"apply():model pointer must not be zero");
check_model_ptr();

@temporarySetting@

Expand Down Expand Up @@ -117,8 +115,7 @@ void @ModelName@_low_scale_constraint<Semi_analytic>::clear()

void @ModelName@_low_scale_constraint<Semi_analytic>::initialize()
{
assert(model && "@ModelName@_low_scale_constraint<Semi_analytic>::"
"initialize(): model pointer is zero.");
check_model_ptr();

@scaleGuess@
scale = initial_scale_guess;
Expand All @@ -138,8 +135,7 @@ void @ModelName@_low_scale_constraint<Semi_analytic>::initialize()

void @ModelName@_low_scale_constraint<Semi_analytic>::update_scale()
{
assert(model && "@ModelName@_low_scale_constraint<Semi_analytic>::"
"update_scale(): model pointer is zero.");
check_model_ptr();

@calculateScale@
@restrictScale@
Expand All @@ -148,12 +144,13 @@ void @ModelName@_low_scale_constraint<Semi_analytic>::update_scale()

void @ModelName@_low_scale_constraint<Semi_analytic>::calculate_threshold_corrections()
{
assert(qedqcd.get_scale() == get_scale() && "Error: low-energy data"
check_model_ptr();

if (qedqcd.get_scale() != get_scale())
throw SetupError("Error: low-energy data"
" set is not defined at the same scale as the low-energy"
" constraint. You need to run the low-energy data set to this"
" scale!");
assert(model && "@ModelName@_low_scale_constraint<Semi_analytic>::"
"calculate_threshold_corrections(): model pointer is zero");

const double alpha_em = qedqcd.displayAlpha(softsusy::ALPHA);
const double alpha_s = qedqcd.displayAlpha(softsusy::ALPHAS);
Expand Down Expand Up @@ -188,8 +185,7 @@ void @ModelName@_low_scale_constraint<Semi_analytic>::calculate_threshold_correc

double @ModelName@_low_scale_constraint<Semi_analytic>::calculate_theta_w(double alpha_em_drbar)
{
assert(model && "@ModelName@_low_scale_constraint<Semi_analytic>::"
"calculate_theta_w(): model pointer is zero");
check_model_ptr();

double theta_w = 0.;

Expand All @@ -200,9 +196,7 @@ double @ModelName@_low_scale_constraint<Semi_analytic>::calculate_theta_w(double

void @ModelName@_low_scale_constraint<Semi_analytic>::calculate_DRbar_gauge_couplings()
{
assert(model && "@ModelName@_low_scale_constraint<Semi_analytic>::"
"calculate_DRbar_gauge_couplings(): model pointer is zero");

check_model_ptr();
calculate_threshold_corrections();

@calculateGaugeCouplings@
Expand All @@ -226,17 +220,15 @@ void @ModelName@_low_scale_constraint<Semi_analytic>::calculate_DRbar_gauge_coup

double @ModelName@_low_scale_constraint<Semi_analytic>::calculate_delta_alpha_em(double alphaEm) const
{
assert(model && "@ModelName@_low_scale_constraint<Semi_analytic>::"
"calculate_delta_alpha_em(): model pointer is zero");
check_model_ptr();

const double currentScale = model->get_scale();
@calculateDeltaAlphaEm@
}

double @ModelName@_low_scale_constraint<Semi_analytic>::calculate_delta_alpha_s(double alphaS) const
{
assert(model && "@ModelName@_low_scale_constraint<Semi_analytic>::"
"calculate_delta_alpha_s(): model pointer is zero");
check_model_ptr();

const double currentScale = model->get_scale();
@calculateDeltaAlphaS@
Expand All @@ -251,8 +243,7 @@ void @ModelName@_low_scale_constraint<Semi_analytic>::calculate_DRbar_yukawa_cou

void @ModelName@_low_scale_constraint<Semi_analytic>::calculate_@UpYukawa@_DRbar()
{
assert(model && "@ModelName@_low_scale_constraint<Semi_analytic>::"
"calculate_@UpYukawa@_DRbar(): model pointer is zero");
check_model_ptr();

Eigen::Matrix<std::complex<double>,3,3> upQuarksDRbar(ZEROMATRIXCOMPLEX(3,3));
upQuarksDRbar(0,0) = qedqcd.displayMass(softsusy::mUp);
Expand All @@ -268,8 +259,7 @@ void @ModelName@_low_scale_constraint<Semi_analytic>::calculate_@UpYukawa@_DRbar

void @ModelName@_low_scale_constraint<Semi_analytic>::calculate_@DownYukawa@_DRbar()
{
assert(model && "@ModelName@_low_scale_constraint<Semi_analytic>::"
"calculate_@DownYukawa@_DRbar(): model pointer is zero");
check_model_ptr();

Eigen::Matrix<std::complex<double>,3,3> downQuarksDRbar(ZEROMATRIXCOMPLEX(3,3));
downQuarksDRbar(0,0) = qedqcd.displayMass(softsusy::mDown);
Expand All @@ -285,8 +275,7 @@ void @ModelName@_low_scale_constraint<Semi_analytic>::calculate_@DownYukawa@_DRb

void @ModelName@_low_scale_constraint<Semi_analytic>::calculate_@ElectronYukawa@_DRbar()
{
assert(model && "@ModelName@_low_scale_constraint<Semi_analytic>::"
"calculate_@ElectronYukawa@_DRbar(): model pointer is zero");
check_model_ptr();

Eigen::Matrix<std::complex<double>,3,3> downLeptonsDRbar(ZEROMATRIXCOMPLEX(3,3));
downLeptonsDRbar(0,0) = qedqcd.displayPoleMel();
Expand All @@ -304,8 +293,7 @@ void @ModelName@_low_scale_constraint<Semi_analytic>::calculate_@ElectronYukawa@

void @ModelName@_low_scale_constraint<Semi_analytic>::calculate_MNeutrino_DRbar()
{
assert(model && "@ModelName@_low_scale_constraint<Semi_analytic>::"
"calculate_MNeutrino_DRbar(): model pointer is zero");
check_model_ptr();

neutrinoDRbar.setZero();
neutrinoDRbar(0,0) = qedqcd.displayNeutrinoPoleMass(1);
Expand All @@ -321,10 +309,16 @@ void @ModelName@_low_scale_constraint<Semi_analytic>::calculate_MNeutrino_DRbar(
*/
double @ModelName@_low_scale_constraint<Semi_analytic>::recalculate_mw_pole(double mw_pole)
{
assert(model && "@ModelName@_low_scale_constraint<Semi_analytic>::"
"recalculate_mw_pole(): model pointer is zero");
check_model_ptr();

@recalculateMWPole@
}

void @ModelName@_low_scale_constraint<Semi_analytic>::check_model_ptr() const
{
if (!model)
throw SetupError("@ModelName@_low_scale_constraint<Semi_analytic>: "
"model pointer is zero!");
}

} // namespace flexiblesusy
1 change: 1 addition & 0 deletions templates/semi_analytic_low_scale_constraint.hpp.in
Expand Up @@ -84,6 +84,7 @@ private:
void calculate_MNeutrino_DRbar();
double calculate_delta_alpha_em(double) const;
double calculate_delta_alpha_s(double) const;
void check_model_ptr() const;
double recalculate_mw_pole(double);
void update_scale();
};
Expand Down
20 changes: 11 additions & 9 deletions templates/semi_analytic_soft_parameters_constraint.cpp.in
Expand Up @@ -28,7 +28,6 @@
#include "root_finder.hpp"
#include "threshold_loop_functions.hpp"

#include <cassert>
#include <cmath>

namespace flexiblesusy {
Expand Down Expand Up @@ -64,8 +63,7 @@ namespace flexiblesusy {

void @ModelName@_soft_parameters_constraint<Semi_analytic>::apply()
{
assert(model && "Error: @ModelName@_soft_parameters_constraint<Semi_analytic>::"
"apply():model pointer must not be zero");
check_model_ptr();

@temporarySetting@

Expand All @@ -80,8 +78,7 @@ void @ModelName@_soft_parameters_constraint<Semi_analytic>::apply()

const @ModelName@_input_parameters& @ModelName@_soft_parameters_constraint<Semi_analytic>::get_input_parameters() const
{
assert(model && "Error: @ModelName@_soft_parameters_constraint<Semi_analytic>::"
"get_input_parameters(): model pointer is zero.");
check_model_ptr();

return model->get_input();
}
Expand All @@ -102,8 +99,7 @@ void @ModelName@_soft_parameters_constraint<Semi_analytic>::clear()

void @ModelName@_soft_parameters_constraint<Semi_analytic>::initialize()
{
assert(model && "@ModelName@_soft_parameters_constraint<Semi_analytic>::"
"initialize(): model pointer is zero.");
check_model_ptr();

@scaleGuess@
scale = initial_scale_guess;
Expand All @@ -112,11 +108,17 @@ void @ModelName@_soft_parameters_constraint<Semi_analytic>::initialize()

void @ModelName@_soft_parameters_constraint<Semi_analytic>::update_scale()
{
assert(model && "@ModelName@_soft_parameters_constraint<Semi_analytic>::"
"update_scale(): model pointer is zero.");
check_model_ptr();

@calculateScale@
@restrictScale@
}

void @ModelName@_soft_parameters_constraint<Semi_analytic>::check_model_ptr() const
{
if (!model)
throw SetupError("@ModelName@_soft_parameters_constraint<Semi_analytic>: "
"model pointer is zero!");
}

} // namespace flexiblesusy
2 changes: 2 additions & 0 deletions templates/semi_analytic_soft_parameters_constraint.hpp.in
Expand Up @@ -62,6 +62,8 @@ private:
double input_scale{0.};
@ModelName@<Semi_analytic>* model{nullptr};
softsusy::QedQcd qedqcd{};

void check_model_ptr() const;
};

} // namespace flexiblesusy
Expand Down
20 changes: 11 additions & 9 deletions templates/semi_analytic_susy_scale_constraint.cpp.in
Expand Up @@ -28,7 +28,6 @@
#include "root_finder.hpp"
#include "threshold_loop_functions.hpp"

#include <cassert>
#include <cmath>

namespace flexiblesusy {
Expand Down Expand Up @@ -65,8 +64,7 @@ namespace flexiblesusy {

void @ModelName@_susy_scale_constraint<Semi_analytic>::apply()
{
assert(model && "Error: @ModelName@_susy_scale_constraint<Semi_analytic>::"
"apply():model pointer must not be zero");
check_model_ptr();

@temporarySetting@

Expand All @@ -81,8 +79,7 @@ void @ModelName@_susy_scale_constraint<Semi_analytic>::apply()

const @ModelName@_input_parameters& @ModelName@_susy_scale_constraint<Semi_analytic>::get_input_parameters() const
{
assert(model && "Error: @ModelName@_susy_scale_constraint<Semi_analytic>::"
"get_input_parameters(): model pointer is zero.");
check_model_ptr();

return model->get_input();
}
Expand All @@ -103,21 +100,26 @@ void @ModelName@_susy_scale_constraint<Semi_analytic>::clear()

void @ModelName@_susy_scale_constraint<Semi_analytic>::initialize()
{
assert(model && "@ModelName@_susy_scale_constraint<Semi_analytic>::"
"initialize(): model pointer is zero.");
check_model_ptr();

@scaleGuess@
scale = initial_scale_guess;
}

void @ModelName@_susy_scale_constraint<Semi_analytic>::update_scale()
{
assert(model && "@ModelName@_susy_scale_constraint<Semi_analytic>::"
"update_scale(): model pointer is zero.");
check_model_ptr();

@calculateScale@
@restrictScale@
@updateSemiAnalyticConstraint@
}

void @ModelName@_susy_scale_constraint<Semi_analytic>::check_model_ptr() const
{
if (!model)
throw SetupError("@ModelName@_susy_scale_constraint<Semi_analytic>: "
"model pointer is zero!");
}

} // namespace flexiblesusy
2 changes: 2 additions & 0 deletions templates/semi_analytic_susy_scale_constraint.hpp.in
Expand Up @@ -61,6 +61,8 @@ private:
@ModelName@<Semi_analytic>* model{nullptr};
softsusy::QedQcd qedqcd{};
@semiAnalyticConstraint@

void check_model_ptr() const;
};

} // namespace flexiblesusy
Expand Down

0 comments on commit 478daaa

Please sign in to comment.