Skip to content

Commit

Permalink
Create functions for applying EWSB substitutions
Browse files Browse the repository at this point in the history
  • Loading branch information
Dylan Harries committed Dec 7, 2016
1 parent 15b74e5 commit db79072
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions meta/EWSB.m
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,12 @@

GetValidEWSBSubstitutions::usage="Remove invalid EWSB substitutions";

SetModelParametersFromEWSB::usage="Set model parameters from EWSB solution
using the given substitutions";

ApplyEWSBSubstitutions::usage="Set model parameters according to the
given list of substitutions";

Begin["`Private`"];

DebugPrint[msg___] :=
Expand Down Expand Up @@ -850,6 +856,20 @@
CreateEWSBParametersInitialization[parameters_List, array_String] :=
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
];

ApplyEWSBSubstitutions[parametersFixedByEWSB_List, substitutions_List, class_String:"model"] :=
Module[{pars, result = ""},
pars = DeleteDuplicates[Parameters`FindAllParameters[#[[2]]& /@ substitutions]];
pars = Select[pars, !MemberQ[parametersFixedByEWSB, #]&];
(result = result <> Parameters`SetParameter[#[[1]], #[[2]], class])& /@ substitutions;
Parameters`CreateLocalConstRefs[pars] <> result
];

End[];

EndPackage[];

0 comments on commit db79072

Please sign in to comment.