Skip to content

Commit

Permalink
Calculate semi-analytic solutions earlier
Browse files Browse the repository at this point in the history
in order to use them in solving the EWSB equations
  • Loading branch information
Dylan Harries committed Jan 20, 2017
1 parent 566f944 commit a49cf32
Showing 1 changed file with 22 additions and 18 deletions.
40 changes: 22 additions & 18 deletions meta/FlexibleSUSY.m
Expand Up @@ -2711,6 +2711,27 @@ corresponding tadpole is real or imaginary (only in models with CP
FlexibleSUSY`HighScaleFirstGuess = FlexibleSUSY`HighScaleFirstGuess /.
lesHouchesInputParameterReplacementRules;

If[HaveBVPSolver[FlexibleSUSY`SemiAnalyticSolver],
SemiAnalytic`SetSemiAnalyticParameters[BetaFunction`GetName[#]& /@ susyBreakingBetaFunctions];

(* @note currently require all semi-analytic parameters to be set at same scale *)
If[!SemiAnalytic`CheckSemiAnalyticBoundaryConditions[{FlexibleSUSY`LowScaleInput,
FlexibleSUSY`SUSYScaleInput,
FlexibleSUSY`HighScaleInput}],
Print["Error: the requested boundary conditions are not"];
Print[" supported by the semi-analytic solver."];
Print[" Please modify the boundary conditions or disable"];
Print[" the semi-analytic solver."];
Quit[1];
];

semiAnalyticBCs = SemiAnalytic`SelectSemiAnalyticConstraint[{FlexibleSUSY`LowScaleInput,
FlexibleSUSY`SUSYScaleInput,
FlexibleSUSY`HighScaleInput}];

semiAnalyticSolns = SemiAnalytic`GetSemiAnalyticSolutions[semiAnalyticBCs];
];

PrintHeadline["Creating model parameter classes"];
Print["Creating class for susy parameters ..."];
WriteRGEClass[susyBetaFunctions, anomDim,
Expand Down Expand Up @@ -3074,26 +3095,9 @@ corresponding tadpole is real or imaginary (only in models with CP
If[HaveBVPSolver[FlexibleSUSY`SemiAnalyticSolver],
PrintHeadline["Creating semi-analytic solver"];

SemiAnalytic`SetSemiAnalyticParameters[BetaFunction`GetName[#]& /@ susyBreakingBetaFunctions];

(* @note currently require all semi-analytic parameters to be set at same scale *)
If[!SemiAnalytic`CheckSemiAnalyticBoundaryConditions[{FlexibleSUSY`LowScaleInput,
FlexibleSUSY`SUSYScaleInput,
FlexibleSUSY`HighScaleInput}],
Print["Error: the requested boundary conditions are not"];
Print[" supported by the semi-analytic solver."];
Print[" Please modify the boundary conditions or disable"];
Print[" the semi-analytic solver."];
Quit[1];
];

semiAnalyticBCs = SemiAnalytic`SelectSemiAnalyticConstraint[{FlexibleSUSY`LowScaleInput,
FlexibleSUSY`SUSYScaleInput,
FlexibleSUSY`HighScaleInput}];

semiAnalyticSolns = SemiAnalytic`GetSemiAnalyticSolutions[semiAnalyticBCs];
Parameters`AddExtraParameters[SemiAnalytic`CreateBoundaryValueParameters[semiAnalyticSolns]];
Parameters`AddExtraParameters[SemiAnalytic`CreateCoefficientParameters[semiAnalyticSolns]];

semiAnalyticSolnsOutputFile = FileNameJoin[{FSOutputDir,
FlexibleSUSY`FSModelName <> "_semi_analytic_solutions.m"}];
Print["Writing semi-analytic solutions to ", semiAnalyticSolnsOutputFile];
Expand Down

0 comments on commit a49cf32

Please sign in to comment.