Skip to content

Commit f107cb6

Browse files
committed
- Optimized the adding of connect equations to the DAE.
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@22912 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent 09bcd65 commit f107cb6

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

Compiler/FrontEnd/ConnectUtil.mo

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1904,7 +1904,7 @@ protected
19041904
algorithm
19051905
outDae := match(inTopScope, inSets, inDae, inConnectionGraph, inModelNameQualified)
19061906
local
1907-
DAE.DAElist dae;
1907+
DAE.DAElist dae, dae2;
19081908
Boolean has_stream, has_expandable, has_cardinality;
19091909
ConnectionGraph.DaeEdges broken, connected;
19101910

@@ -1923,7 +1923,8 @@ algorithm
19231923
// we do this here so we do it once and not for every EQU set.
19241924
(dae, connected, broken) = ConnectionGraph.handleOverconstrainedConnections(inConnectionGraph, inModelNameQualified, dae);
19251925
// adrpo: FIXME: maybe we should just remove them from the sets then send the updates sets further
1926-
dae = List.fold2(sets, equationsDispatch, connected, broken, dae);
1926+
dae2 = List.fold2(listReverse(sets), equationsDispatch, connected, broken, DAE.emptyDae);
1927+
dae = DAEUtil.joinDaes(dae, dae2);
19271928
has_stream = System.getHasStreamConnectors();
19281929
has_cardinality = System.getUsesCardinality();
19291930
dae = evaluateConnectionOperators(has_stream, has_cardinality, inSets, set_array, dae);
@@ -2494,19 +2495,19 @@ algorithm
24942495
eql = ConnectionGraph.removeBrokenConnects(eql, inConnected, inBroken);
24952496
dae = generateEquEquations(eql);
24962497
then
2497-
DAEUtil.joinDaes(inDae, dae);
2498+
DAEUtil.joinDaes(dae, inDae);
24982499

24992500
case (Connect.SET(ty = Connect.FLOW(), elements = eql), _, _, _)
25002501
equation
25012502
dae = generateFlowEquations(eql);
25022503
then
2503-
DAEUtil.joinDaes(inDae, dae);
2504+
DAEUtil.joinDaes(dae, inDae);
25042505

25052506
case (Connect.SET(ty = Connect.STREAM(_), elements = eql), _, _, _)
25062507
equation
25072508
dae = generateStreamEquations(eql);
25082509
then
2509-
DAEUtil.joinDaes(inDae, dae);
2510+
DAEUtil.joinDaes(dae, inDae);
25102511

25112512
case (Connect.SET(ty = Connect.NO_TYPE()), _, _, _)
25122513
equation

Compiler/FrontEnd/ConnectionGraph.mo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1756,7 +1756,7 @@ algorithm
17561756
else
17571757
equation
17581758
equalityConstraintElements = List.flatten(List.map(inBroken, Util.tuple33));
1759-
dae = DAEUtil.joinDaes(inDAE, DAE.DAE(equalityConstraintElements));
1759+
dae = DAEUtil.joinDaes(DAE.DAE(equalityConstraintElements), inDAE);
17601760
then
17611761
dae;
17621762

0 commit comments

Comments
 (0)