Skip to content
This repository was archived by the owner on May 18, 2019. It is now read-only.

Commit 2432a47

Browse files
ptaeuberOpenModelica-Hudson
authored andcommitted
Do not remove functions used in lambda0 system
This fixes a lot of models failing since 5ee6abb (Enable global homotopy as fallback option by default)
1 parent 0b97943 commit 2432a47

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

Compiler/BackEnd/BackendDAEUtil.mo

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6822,11 +6822,11 @@ public function getSolvedSystem "Run the equation system pipeline."
68226822
input Option<list<String>> strPostOptModules = NONE();
68236823
output BackendDAE.BackendDAE outSimDAE;
68246824
output BackendDAE.BackendDAE outInitDAE;
6825-
output Option<BackendDAE.BackendDAE> outInitDAE_lambda0;
6825+
output Option<BackendDAE.BackendDAE> outInitDAE_lambda0_option;
68266826
output Option<BackendDAE.InlineData > outInlineData;
68276827
output list<BackendDAE.Equation> outRemovedInitialEquationLst;
68286828
protected
6829-
BackendDAE.BackendDAE dae, simDAE;
6829+
BackendDAE.BackendDAE dae, simDAE, outInitDAE_lambda0;
68306830
list<tuple<BackendDAEFunc.optimizationModule, String>> preOptModules;
68316831
list<tuple<BackendDAEFunc.optimizationModule, String>> postOptModules;
68326832
tuple<BackendDAEFunc.StructurallySingularSystemHandlerFunc, String, BackendDAEFunc.stateDeselectionFunc, String> daeHandler;
@@ -6879,7 +6879,7 @@ algorithm
68796879
end if;
68806880

68816881
// generate system for initialization
6882-
(outInitDAE, outInitDAE_lambda0, outRemovedInitialEquationLst, globalKnownVars) := Initialization.solveInitialSystem(dae);
6882+
(outInitDAE, outInitDAE_lambda0_option, outRemovedInitialEquationLst, globalKnownVars) := Initialization.solveInitialSystem(dae);
68836883

68846884
// use function tree from initDAE further for simDAE
68856885
simDAE := BackendDAEUtil.setFunctionTree(dae, BackendDAEUtil.getFunctions(outInitDAE.shared));
@@ -6903,6 +6903,10 @@ algorithm
69036903
// remove unused functions
69046904
funcTree := BackendDAEOptimize.copyRecordConstructorAndExternalObjConstructorDestructor(BackendDAEUtil.getFunctions(simDAE.shared));
69056905
funcTree := BackendDAEOptimize.removeUnusedFunctions(outInitDAE.eqs, outInitDAE.shared, outRemovedInitialEquationLst, BackendDAEUtil.getFunctions(simDAE.shared), funcTree);
6906+
if isSome(outInitDAE_lambda0_option) then
6907+
SOME(outInitDAE_lambda0) := outInitDAE_lambda0_option;
6908+
funcTree := BackendDAEOptimize.removeUnusedFunctions(outInitDAE_lambda0.eqs, simDAE.shared, {}, BackendDAEUtil.getFunctions(simDAE.shared), funcTree);
6909+
end if;
69066910
funcTree := BackendDAEOptimize.removeUnusedFunctions(simDAE.eqs, simDAE.shared, {}, BackendDAEUtil.getFunctions(simDAE.shared), funcTree);
69076911
outSimDAE := BackendDAEUtil.setFunctionTree(simDAE, funcTree);
69086912
execStat("remove unused functions");

0 commit comments

Comments
 (0)