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

Commit 95e1e12

Browse files
Willi BraunOpenModelica-Hudson
authored andcommitted
[BE] fix order of jacobian equation of a dynamic stateSet
- attempt to fix ticket:4943 Belonging to [master]: - #2662
1 parent 03101bd commit 95e1e12

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

Compiler/SimCode/SimCodeUtil.mo

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,7 @@ algorithm
467467
SymbolicJacsNLS := listAppend(SymbolicJacsTemp, SymbolicJacsNLS);
468468

469469
// collect symbolic jacobians from state selection
470-
(stateSets, modelInfo, SymbolicJacsStateSelect) := addAlgebraicLoopsModelInfoStateSets(stateSets, modelInfo);
470+
(stateSets, modelInfo, SymbolicJacsStateSelect, SymbolicJacsStateSelectInternal) := addAlgebraicLoopsModelInfoStateSets(stateSets, modelInfo);
471471
if debug then execStat("simCode: collect and index LS/NLS in modelInfo"); end if;
472472

473473
// collect fmi partial derivative
@@ -487,6 +487,7 @@ algorithm
487487

488488
SymbolicJacs := listAppend(listReverse(SymbolicJacsNLS), SymbolicJacs);
489489
SymbolicJacs := listAppend(SymbolicJacs, SymbolicJacsTemp);
490+
SymbolicJacs := listAppend(SymbolicJacs, SymbolicJacsStateSelectInternal);
490491
jacobianSimvars := collectAllJacobianVars(SymbolicJacs);
491492
modelInfo := setJacobianVars(jacobianSimvars, modelInfo);
492493
seedVars := collectAllSeedVars(SymbolicJacs);
@@ -1253,19 +1254,21 @@ public function addAlgebraicLoopsModelInfoStateSets
12531254
output list<SimCode.StateSet> outSets = {};
12541255
output SimCode.ModelInfo modelInfo = inModelInfo;
12551256
output list<SimCode.JacobianMatrix> outSymJacs = {};
1257+
output list<SimCode.JacobianMatrix> outSymJacsInternal = {};
12561258
protected
12571259
SimCode.JacobianMatrix symJac;
12581260
list<SimCode.JacobianMatrix> tmpSymJacs;
12591261
algorithm
12601262
for set in inSets loop
12611263
({symJac}, modelInfo, tmpSymJacs) := addAlgebraicLoopsModelInfoSymJacs({set.jacobianMatrix}, modelInfo);
1262-
outSymJacs := listAppend(tmpSymJacs, outSymJacs);
1264+
outSymJacsInternal := listAppend(tmpSymJacs, outSymJacsInternal);
12631265
set.jacobianMatrix := symJac;
12641266
outSymJacs := symJac::outSymJacs;
12651267
outSets := set::outSets;
12661268
end for;
12671269
outSets := listReverse(outSets);
12681270
outSymJacs := listReverse(outSymJacs);
1271+
outSymJacsInternal := listReverse(outSymJacsInternal);
12691272
end addAlgebraicLoopsModelInfoStateSets;
12701273

12711274
protected function addAlgebraicLoopsClockPartitions "

0 commit comments

Comments
 (0)