diff --git a/meta/SemiAnalytic.m b/meta/SemiAnalytic.m index f3b718524..cde55a165 100644 --- a/meta/SemiAnalytic.m +++ b/meta/SemiAnalytic.m @@ -31,6 +31,9 @@ GetBasis[SemiAnalyticSolution[name_, basis_List]] := basis; +GetBoundaryValueParameters[solutions_List] := + DeleteDuplicates[Flatten[(Parameters`FindAllParameters[GetBasis[#]])& /@ solutions]]; + IsDimensionOne[par_] := Module[{dimOnePars}, dimOnePars = { SARAH`BetaTijk }; @@ -106,6 +109,13 @@ True ]; +RemoveUnusedSettings[constraints_List] := + Module[{isUsed}, + isUsed[setting_] := Intersection[Constraint`FindFixedParametersFromConstraint[{setting}], + allSemiAnalyticParameters] =!= {}; + Select[constraints, isUsed[#]&] + ]; + SelectSemiAnalyticConstraint[constraints_List] := Module[{i, sortedPars, fixedPars, result = {}}, sortedPars = Sort[allSemiAnalyticParameters]; @@ -116,7 +126,7 @@ result = constraints[[i]]; ]; ]; - result + RemoveUnusedSettings[result] ]; SelectParametersWithMassDimension[parameters_List, dim_?IntegerQ] := @@ -464,9 +474,6 @@ Return[def]; ]; -GetBoundaryValueParameters[solutions_List] := - DeleteDuplicates[Flatten[(Parameters`FindAllParameters[GetBasis[#]])& /@ solutions]]; - CreateBoundaryValuesDefinitions[solutions_List] := Module[{boundaryValues, defns}, boundaryValues = GetBoundaryValueParameters[solutions];