Skip to content

Commit 4f43fa1

Browse files
committed
Fix handling of symbolic Jacobians
1 parent f75088c commit 4f43fa1

File tree

2 files changed

+17
-34
lines changed

2 files changed

+17
-34
lines changed

Compiler/BackEnd/BackendDAEUtil.mo

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6895,31 +6895,20 @@ end postOptimizeDAE;
68956895

68966896
public function getSolvedSystemforJacobians "Run the equation system pipeline."
68976897
input BackendDAE.BackendDAE inDAE;
6898-
input Option<list<String>> strPreOptModules;
6898+
input list<String> strPreOptModules;
68996899
input Option<String> strMatchingAlgorithm;
69006900
input Option<String> strDAEHandler;
6901-
input Option<list<String>> strPostOptModules;
6901+
input list<String> strPostOptModules;
69026902
output BackendDAE.BackendDAE outDAE;
69036903
protected
69046904
BackendDAE.BackendDAE dae;
69056905
list<tuple<BackendDAEFunc.optimizationModule, String>> preOptModules;
69066906
list<tuple<BackendDAEFunc.optimizationModule, String>> postOptModules;
69076907
tuple<BackendDAEFunc.StructurallySingularSystemHandlerFunc, String, BackendDAEFunc.stateDeselectionFunc, String> daeHandler;
69086908
tuple<BackendDAEFunc.matchingAlgorithmFunc, String> matchingAlgorithm;
6909-
6910-
list<String> preOptModulesAdd = Flags.getConfigStringList(Flags.PRE_OPT_MODULES_ADD);
6911-
list<String> preOptModulesSub = Flags.getConfigStringList(Flags.PRE_OPT_MODULES_SUB);
6912-
list<String> postOptModulesAdd = Flags.getConfigStringList(Flags.POST_OPT_MODULES_ADD);
6913-
list<String> postOptModulesSub = Flags.getConfigStringList(Flags.POST_OPT_MODULES_SUB);
69146909
algorithm
6915-
// don't use --preOptModules+/-, --postOptModules+/- flags for Jacobains
6916-
Flags.setConfigStringList(Flags.PRE_OPT_MODULES_ADD, {});
6917-
Flags.setConfigStringList(Flags.PRE_OPT_MODULES_SUB, {});
6918-
Flags.setConfigStringList(Flags.POST_OPT_MODULES_ADD, {});
6919-
Flags.setConfigStringList(Flags.POST_OPT_MODULES_SUB, {});
6920-
6921-
preOptModules := getPreOptModules(strPreOptModules);
6922-
postOptModules := getPostOptModules(strPostOptModules);
6910+
preOptModules := selectOptModules(strPreOptModules, {}, {}, allPreOptimizationModules());
6911+
postOptModules := selectOptModules(strPostOptModules, {}, {}, allPostOptimizationModules());
69236912
matchingAlgorithm := getMatchingAlgorithm(strMatchingAlgorithm);
69246913
daeHandler := getIndexReductionMethod(strDAEHandler);
69256914

@@ -6937,12 +6926,6 @@ algorithm
69376926
//fcall2(Flags.DUMP_INDX_DAE, BackendDump.dumpBackendDAE, outDAE, "dumpindxdae");
69386927
//bcall(Flags.isSet(Flags.DUMP_BACKENDDAE_INFO) or Flags.isSet(Flags.DUMP_STATESELECTION_INFO) or Flags.isSet(Flags.DUMP_DISCRETEVARS_INFO), BackendDump.dumpCompShort, outDAE);
69396928
//fcall2(Flags.DUMP_EQNINORDER, BackendDump.dumpEqnsSolved, outDAE, "system for jacobians");
6940-
6941-
// restore flags
6942-
Flags.setConfigStringList(Flags.PRE_OPT_MODULES_ADD, preOptModulesAdd);
6943-
Flags.setConfigStringList(Flags.PRE_OPT_MODULES_SUB, preOptModulesSub);
6944-
Flags.setConfigStringList(Flags.POST_OPT_MODULES_ADD, postOptModulesAdd);
6945-
Flags.setConfigStringList(Flags.POST_OPT_MODULES_SUB, postOptModulesSub);
69466929
end getSolvedSystemforJacobians;
69476930

69486931
/*************************************************

Compiler/BackEnd/SymbolicJacobian.mo

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1830,21 +1830,21 @@ algorithm
18301830
end if;
18311831

18321832
backendDAE2 = BackendDAEUtil.getSolvedSystemforJacobians(backendDAE,
1833-
SOME({"removeEqualFunctionCalls",
1834-
"removeSimpleEquations",
1835-
"evalFunc",
1836-
"simplifyAllExpressions"}),
1833+
{"removeEqualFunctionCalls",
1834+
"removeSimpleEquations",
1835+
"evalFunc",
1836+
"simplifyAllExpressions"},
18371837
NONE(),
18381838
NONE(),
1839-
SOME({"inlineArrayEqn",
1840-
"constantLinearSystem",
1841-
"removeSimpleEquations",
1842-
"tearingSystem",
1843-
"calculateStrongComponentJacobians",
1844-
"removeConstants",
1845-
"solveSimpleEquations",
1846-
"simplifyTimeIndepFuncCalls",
1847-
"simplifyAllExpressions"}));
1839+
{"inlineArrayEqn",
1840+
"constantLinearSystem",
1841+
"removeSimpleEquations",
1842+
"tearingSystem",
1843+
"calculateStrongComponentJacobians",
1844+
"removeConstants",
1845+
"solveSimpleEquations",
1846+
"simplifyTimeIndepFuncCalls",
1847+
"simplifyAllExpressions"});
18481848
_ = Flags.set(Flags.EXEC_STAT, b);
18491849
if Flags.isSet(Flags.JAC_DUMP) then
18501850
BackendDump.bltdump("Symbolic Jacobian",backendDAE2);

0 commit comments

Comments
 (0)