Skip to content

Commit

Permalink
Print warning if auxiliary parameters appear in multiple constraints
Browse files Browse the repository at this point in the history
  • Loading branch information
Dylan Harries committed Dec 13, 2016
1 parent 840070d commit c985ebd
Showing 1 changed file with 25 additions and 9 deletions.
34 changes: 25 additions & 9 deletions meta/FlexibleSUSY.m
Original file line number Diff line number Diff line change
Expand Up @@ -515,6 +515,17 @@ FlexibleSUSY model file (FlexibleSUSY.m).
CheckBVPSolvers[FlexibleSUSY`FSBVPSolvers];
];

CheckExtraParametersUsage[parameters_List, boundaryConditions_List] :=
Module[{usedCases, multiplyUsedPars},
usedCases = Function[par, !FreeQ[#, par]& /@ boundaryConditions] /@ parameters;
multiplyUsedPars = Position[Count[#, True]& /@ usedCases, n_ /; n > 1];
If[multiplyUsedPars =!= {},
Print["Warning: the following auxiliary parameters appear at"];
Print[" multiple scales, but do not run:"];
Print[" ", Extract[parameters, multiplyUsedPars]];
];
];

ReplaceIndicesInUserInput[rules_] :=
Block[{},
FlexibleSUSY`InitialGuessAtLowScale = FlexibleSUSY`InitialGuessAtLowScale /. rules;
Expand Down Expand Up @@ -2273,6 +2284,16 @@ corresponding tadpole is real or imaginary (only in models with CP
Exp[I #]& /@ GetVEVPhases[FlexibleSUSY`FSEigenstates]];
Parameters`SetPhases[phases];

(* collect any extra user-defined parameters *)
FlexibleSUSY`FSAuxiliaryParameters = {#[[1]], Parameters`GetRealTypeFromDimension[#[[2]]]}& /@ FlexibleSUSY`FSAuxiliaryParameters;
Parameters`SetExtraParameters[FlexibleSUSY`FSAuxiliaryParameters];
DebugPrint["auxiliary parameters: ", Parameters`GetExtraParameters[]];

allExtraParameterIndexReplacementRules = Parameters`CreateIndexReplacementRules[
(* {parameter, type} *)
{#[[1]], #[[2]]}& /@ FlexibleSUSY`FSAuxiliaryParameters
];

FlexibleSUSY`FSLesHouchesList = SA`LHList;

(* collect input parameters from MINPAR and EXTPAR lists *)
Expand Down Expand Up @@ -2309,6 +2330,10 @@ corresponding tadpole is real or imaginary (only in models with CP
"initial guess"
];

(* warn if extra parameters, which do not run, are used at multiple scales *)
CheckExtraParametersUsage[Parameters`GetExtraParameters[],
{FlexibleSUSY`LowScaleInput, FlexibleSUSY`SUSYScaleInput, FlexibleSUSY`HighScaleInput}];

(* add SM gauge couplings to low-scale constraint if not set anywhere *)
If[ValueQ[SARAH`hyperchargeCoupling] &&
!Constraint`IsFixed[SARAH`hyperchargeCoupling,
Expand Down Expand Up @@ -2417,15 +2442,6 @@ corresponding tadpole is real or imaginary (only in models with CP
{#[[1]], #[[3]]}& /@ FlexibleSUSY`FSExtraInputParameters
];

(* collect any extra user-defined parameters *)
FlexibleSUSY`FSAuxiliaryParameters = {#[[1]], Parameters`GetRealTypeFromDimension[#[[2]]]}& /@ FlexibleSUSY`FSAuxiliaryParameters;
Parameters`SetExtraParameters[FlexibleSUSY`FSAuxiliaryParameters];

allExtraParameterIndexReplacementRules = Parameters`CreateIndexReplacementRules[
(* {parameter, type} *)
{#[[1]], #[[2]]}& /@ FlexibleSUSY`FSAuxiliaryParameters
];

(* replace all indices in the user-defined model file variables *)
EvaluateUserInput[];
ReplaceIndicesInUserInput[allIndexReplacementRules];
Expand Down

0 comments on commit c985ebd

Please sign in to comment.