Skip to content

Commit

Permalink
Wrap input parameters signs and phases in macros when setting EWSB so…
Browse files Browse the repository at this point in the history
…lution
  • Loading branch information
Dylan Harries committed Dec 9, 2016
1 parent 068e9cd commit c5d8119
Showing 1 changed file with 13 additions and 5 deletions.
18 changes: 13 additions & 5 deletions meta/EWSB.m
Original file line number Diff line number Diff line change
Expand Up @@ -885,16 +885,24 @@
StringJoin[MapIndexed[SetEWSBParameter[#1,First[#2 - 1],array]&, parameters]];

SetModelParametersFromEWSB[substitutions_List] :=
Module[{result = ""},
(result = result <> Parameters`SetParameter[#[[1]], #[[2]], Parameters`GetType[#[[1]]]])& /@ substitutions;
Parameters`CreateLocalConstRefsForInputParameters[#[[2]]& /@ substitutions, "LOCALINPUT"] <> result
Module[{subs = substitutions, result = ""},
subs = subs /. { RuleDelayed[Sign[p_] /; Parameters`IsInputParameter[Sign[p]],
Global`LOCALINPUT[CConversion`ToValidCSymbol[Sign[p]]]],
RuleDelayed[FlexibleSUSY`Phase[p_] /; Parameters`IsInputParameter[FlexibleSUSY`Phase[p]],
Global`LOCALINPUT[CConversion`ToValidCSymbol[FlexibleSUSY`Phase[p]]]] };
(result = result <> Parameters`SetParameter[#[[1]], #[[2]], Parameters`GetType[#[[1]]]])& /@ subs;
Parameters`CreateLocalConstRefsForInputParameters[#[[2]]& /@ subs, "LOCALINPUT"] <> result
];

ApplyEWSBSubstitutions[parametersFixedByEWSB_List, substitutions_List, class_String:"model."] :=
Module[{pars, result = ""},
Module[{pars, subs = substitutions, result = ""},
pars = DeleteDuplicates[Parameters`FindAllParameters[#[[2]]& /@ substitutions]];
pars = Select[pars, !MemberQ[parametersFixedByEWSB, #]&];
(result = result <> Parameters`SetParameter[#[[1]], #[[2]], class])& /@ substitutions;
subs = subs /. { RuleDelayed[Sign[p_] /; Parameters`IsInputParameter[Sign[p]],
Global`INPUT[CConversion`ToValidCSymbol[Sign[p]]]],
RuleDelayed[FlexibleSUSY`Phase[p_] /; Parameters`IsInputParameter[FlexibleSUSY`Phase[p]],
Global`INPUT[CConversion`ToValidCSymbol[FlexibleSUSY`Phase[p]]]] };
(result = result <> Parameters`SetParameter[#[[1]], #[[2]], class])& /@ subs;
Parameters`CreateLocalConstRefs[pars] <> result
];

Expand Down

0 comments on commit c5d8119

Please sign in to comment.