Skip to content

Commit fac0426

Browse files
kabdelhakadrpo
authored andcommitted
[BE] update InlineAfterIndexReduction
- inline function calls with InlineAfterIndexReduction only for matching - ticket 5170 - fixup testuite
1 parent b2eff48 commit fac0426

File tree

14 files changed

+113
-105
lines changed

14 files changed

+113
-105
lines changed

OMCompiler/Compiler/BackEnd/BackendDAEUtil.mo

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2519,6 +2519,7 @@ public function incidenceRow
25192519
output Integer rowSize;
25202520
protected
25212521
list<Integer> whenIntegerLst;
2522+
BackendDAE.Equation inlinedEquation;
25222523
algorithm
25232524
whenIntegerLst := matchcontinue inIndexType
25242525
local
@@ -2543,7 +2544,15 @@ algorithm
25432544
else {};
25442545
end matchcontinue;
25452546

2546-
(outIntegerLst,rowSize) := matchcontinue (inEquation)
2547+
/* Fix for ticket #5170
2548+
Functions with the annotation "InlineAfterIndexReduction" can contain dependencies which are only
2549+
used for differentiation purposes and should not be part of the adjacency matrix. Therefore these
2550+
are inlined before constructing the adjacency row.
2551+
E.g. func(a,b) = a --d/dt--> func_der(a,b) = b
2552+
*/
2553+
(inlinedEquation,_) := BackendInline.inlineEq(inEquation,(functionTree,{DAE.AFTER_INDEX_RED_INLINE()}));
2554+
2555+
(outIntegerLst,rowSize) := matchcontinue (inlinedEquation)
25472556
local
25482557
AvlSetInt.Tree lst1,lst2,res;
25492558
list<Integer> dimsize;

OMCompiler/Compiler/BackEnd/BackendInline.mo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ algorithm
172172
end for;
173173
end inlineEquationOptArray;
174174

175-
protected function inlineEq "
175+
public function inlineEq "
176176
inlines function calls in equations"
177177
input BackendDAE.Equation inEquation;
178178
input Inline.Functiontuple fns;

testsuite/openmodelica/cppruntime/fmu/modelExchange/1.0/Crane_FMU1_CPP.mos

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,11 @@ val(prismatic_v, 1);
4242
// LOG_SUCCESS | info | The simulation finished successfully.
4343
// "
4444
// end SimulationResult;
45-
// "[openmodelica/cppruntime/fmu/modelExchange/1.0/cranes_crane_me_FMU.mo:794:3-794:76:writable] Warning: Parameter world_label2 has no value, and is fixed during initialization (fixed=true), using available start value (start="y") as default value.
46-
// [openmodelica/cppruntime/fmu/modelExchange/1.0/cranes_crane_me_FMU.mo:793:3-793:78:writable] Warning: Parameter world_label1 has no value, and is fixed during initialization (fixed=true), using available start value (start="x") as default value.
47-
// [openmodelica/cppruntime/fmu/modelExchange/1.0/cranes_crane_me_FMU.mo:792:3-792:80:writable] Warning: Parameter fixedTranslation_shapeType has no value, and is fixed during initialization (fixed=true), using available start value (start="cylinder") as default value.
48-
// [openmodelica/cppruntime/fmu/modelExchange/1.0/cranes_crane_me_FMU.mo:791:3-791:73:writable] Warning: Parameter bodyShape_shapeType has no value, and is fixed during initialization (fixed=true), using available start value (start="cylinder") as default value.
49-
// [openmodelica/cppruntime/fmu/modelExchange/1.0/cranes_crane_me_FMU.mo:790:3-790:90:writable] Warning: Parameter bodyShape_frameTranslation_shapeType has no value, and is fixed during initialization (fixed=true), using available start value (start="cylinder") as default value.
45+
// "[openmodelica/cppruntime/fmu/modelExchange/1.0/cranes_crane_me_FMU.mo:793:3-793:76:writable] Warning: Parameter world_label2 has no value, and is fixed during initialization (fixed=true), using available start value (start="y") as default value.
46+
// [openmodelica/cppruntime/fmu/modelExchange/1.0/cranes_crane_me_FMU.mo:792:3-792:78:writable] Warning: Parameter world_label1 has no value, and is fixed during initialization (fixed=true), using available start value (start="x") as default value.
47+
// [openmodelica/cppruntime/fmu/modelExchange/1.0/cranes_crane_me_FMU.mo:791:3-791:80:writable] Warning: Parameter fixedTranslation_shapeType has no value, and is fixed during initialization (fixed=true), using available start value (start="cylinder") as default value.
48+
// [openmodelica/cppruntime/fmu/modelExchange/1.0/cranes_crane_me_FMU.mo:790:3-790:73:writable] Warning: Parameter bodyShape_shapeType has no value, and is fixed during initialization (fixed=true), using available start value (start="cylinder") as default value.
49+
// [openmodelica/cppruntime/fmu/modelExchange/1.0/cranes_crane_me_FMU.mo:789:3-789:90:writable] Warning: Parameter bodyShape_frameTranslation_shapeType has no value, and is fixed during initialization (fixed=true), using available start value (start="cylinder") as default value.
5050
// "
5151
// 0.9493545676148092
5252
// 0.3948240567431445

testsuite/openmodelica/xml/XmlDumpComment.mos

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -22558,8 +22558,8 @@ readFile("Modelica.Mechanics.MultiBody.Examples.Elementary.Pendulum.xml");
2255822558
// <solvedIn variableId=\"59\" equationId=\"37\" />
2255922559
// <solvedIn variableId=\"60\" equationId=\"37\" />
2256022560
// <solvedIn variableId=\"61\" equationId=\"77\" />
22561-
// <solvedIn variableId=\"62\" equationId=\"76\" />
22562-
// <solvedIn variableId=\"63\" equationId=\"94\" />
22561+
// <solvedIn variableId=\"62\" equationId=\"93\" />
22562+
// <solvedIn variableId=\"63\" equationId=\"75\" />
2256322563
// <solvedIn variableId=\"64\" equationId=\"100\" />
2256422564
// <solvedIn variableId=\"65\" equationId=\"101\" />
2256522565
// <solvedIn variableId=\"66\" equationId=\"102\" />
@@ -22580,15 +22580,15 @@ readFile("Modelica.Mechanics.MultiBody.Examples.Elementary.Pendulum.xml");
2258022580
// <solvedIn variableId=\"81\" equationId=\"104\" />
2258122581
// <solvedIn variableId=\"82\" equationId=\"105\" />
2258222582
// <solvedIn variableId=\"83\" equationId=\"85\" />
22583-
// <solvedIn variableId=\"84\" equationId=\"63\" />
22583+
// <solvedIn variableId=\"84\" equationId=\"64\" />
2258422584
// <solvedIn variableId=\"85\" equationId=\"62\" />
2258522585
// <solvedIn variableId=\"86\" equationId=\"61\" />
2258622586
// <solvedIn variableId=\"87\" equationId=\"98\" />
22587-
// <solvedIn variableId=\"88\" equationId=\"97\" />
22588-
// <solvedIn variableId=\"89\" equationId=\"84\" />
22587+
// <solvedIn variableId=\"88\" equationId=\"84\" />
22588+
// <solvedIn variableId=\"89\" equationId=\"96\" />
2258922589
// <solvedIn variableId=\"90\" equationId=\"95\" />
22590-
// <solvedIn variableId=\"91\" equationId=\"96\" />
22591-
// <solvedIn variableId=\"92\" equationId=\"93\" />
22590+
// <solvedIn variableId=\"91\" equationId=\"94\" />
22591+
// <solvedIn variableId=\"92\" equationId=\"97\" />
2259222592
// <solvedIn variableId=\"93\" equationId=\"83\" />
2259322593
// <solvedIn variableId=\"94\" equationId=\"82\" />
2259422594
// <solvedIn variableId=\"95\" equationId=\"81\" />
@@ -22598,8 +22598,8 @@ readFile("Modelica.Mechanics.MultiBody.Examples.Elementary.Pendulum.xml");
2259822598
// <solvedIn variableId=\"99\" equationId=\"90\" />
2259922599
// <solvedIn variableId=\"100\" equationId=\"91\" />
2260022600
// <solvedIn variableId=\"101\" equationId=\"92\" />
22601-
// <solvedIn variableId=\"102\" equationId=\"75\" />
22602-
// <solvedIn variableId=\"103\" equationId=\"64\" />
22601+
// <solvedIn variableId=\"102\" equationId=\"63\" />
22602+
// <solvedIn variableId=\"103\" equationId=\"76\" />
2260322603
// <solvedIn variableId=\"104\" equationId=\"65\" />
2260422604
// <solvedIn variableId=\"105\" equationId=\"89\" />
2260522605
// <solvedIn variableId=\"106\" equationId=\"88\" />
@@ -22782,51 +22782,51 @@ readFile("Modelica.Mechanics.MultiBody.Examples.Elementary.Pendulum.xml");
2278222782
// </bltBlock>
2278322783
// <bltBlock id=\"81\">
2278422784
// <involvedEquation equationId=\"63\" />
22785-
// <involvedEquation equationId=\"65\" />
22786-
// <involvedEquation equationId=\"77\" />
22785+
// <involvedEquation equationId=\"75\" />
2278722786
// <involvedEquation equationId=\"98\" />
2278822787
// <involvedEquation equationId=\"84\" />
22789-
// <involvedEquation equationId=\"96\" />
22790-
// <involvedEquation equationId=\"94\" />
2279122788
// <involvedEquation equationId=\"97\" />
22792-
// <involvedEquation equationId=\"95\" />
22793-
// <involvedEquation equationId=\"75\" />
2279422789
// <involvedEquation equationId=\"93\" />
22795-
// <involvedEquation equationId=\"64\" />
22790+
// <involvedEquation equationId=\"96\" />
22791+
// <involvedEquation equationId=\"95\" />
2279622792
// <involvedEquation equationId=\"76\" />
22793+
// <involvedEquation equationId=\"64\" />
22794+
// <involvedEquation equationId=\"65\" />
22795+
// <involvedEquation equationId=\"77\" />
22796+
// <involvedEquation equationId=\"94\" />
2279722797
// </bltBlock>
2279822798
// <bltBlock id=\"82\">
22799-
// <involvedEquation equationId=\"91\" />
22799+
// <involvedEquation equationId=\"90\" />
2280022800
// </bltBlock>
2280122801
// <bltBlock id=\"83\">
2280222802
// <involvedEquation equationId=\"92\" />
2280322803
// </bltBlock>
2280422804
// <bltBlock id=\"84\">
22805-
// <involvedEquation equationId=\"90\" />
22805+
// <involvedEquation equationId=\"87\" />
2280622806
// </bltBlock>
2280722807
// <bltBlock id=\"85\">
22808-
// <involvedEquation equationId=\"78\" />
22808+
// <involvedEquation equationId=\"89\" />
2280922809
// </bltBlock>
2281022810
// <bltBlock id=\"86\">
22811-
// <involvedEquation equationId=\"79\" />
22811+
// <involvedEquation equationId=\"91\" />
2281222812
// </bltBlock>
2281322813
// <bltBlock id=\"87\">
22814-
// <involvedEquation equationId=\"80\" />
22814+
// <involvedEquation equationId=\"78\" />
2281522815
// </bltBlock>
2281622816
// <bltBlock id=\"88\">
22817-
// <involvedEquation equationId=\"81\" />
22817+
// <involvedEquation equationId=\"79\" />
2281822818
// </bltBlock>
2281922819
// <bltBlock id=\"89\">
22820-
// <involvedEquation equationId=\"82\" />
22820+
// <involvedEquation equationId=\"80\" />
2282122821
// </bltBlock>
2282222822
// <bltBlock id=\"90\">
22823-
// <involvedEquation equationId=\"83\" />
22823+
// <involvedEquation equationId=\"81\" />
2282422824
// </bltBlock>
2282522825
// <bltBlock id=\"91\">
22826-
// <involvedEquation equationId=\"87\" />
22826+
// <involvedEquation equationId=\"82\" />
2282722827
// </bltBlock>
2282822828
// <bltBlock id=\"92\">
22829-
// <involvedEquation equationId=\"89\" />
22829+
// <involvedEquation equationId=\"83\" />
2283022830
// </bltBlock>
2283122831
// <bltBlock id=\"93\">
2283222832
// <involvedEquation equationId=\"62\" />

testsuite/simulation/libraries/msl32/Modelica.Mechanics.MultiBody.Examples.Loops.EngineV6.mos

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ runScript(modelTesting);getErrorString();
5656
// * Torn equation systems: 13
5757
// * Mixed (continuous/discrete) equation systems: 0
5858
// Notification: Torn system details for strict tearing set:
59-
// * Linear torn systems: 7 {(27,17.6%) 757,(2,100.0%) 11,(3,88.9%) 10,(3,88.9%) 10,(3,88.9%) 10,(2,100.0%) 11,(2,100.0%) 11}
59+
// * Linear torn systems: 7 {(27,17.6%) 757,(2,100.0%) 11,(2,100.0%) 11,(3,88.9%) 10,(2,100.0%) 11,(2,100.0%) 11,(2,100.0%) 11}
6060
// * Non-linear torn systems: 6 {2 12,2 12,2 12,2 12,2 12,2 12}
6161
// Notification: Model statistics after passing the back-end for simulation:
6262
// * Number of independent subsystems: 217

testsuite/simulation/libraries/msl32/Modelica.Mechanics.MultiBody.Examples.Loops.EngineV6_analytic.mos

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ runScript(modelTesting);getErrorString();
4545
// * Number of discrete variables: 333 ('-d=discreteinfo' for list of discrete vars)
4646
// * Number of discrete states: 0 ('-d=discreteinfo' for list of discrete states)
4747
// * Top-level inputs: 0
48-
// Notification: Strong component statistics for initialization (2820):
49-
// * Single equations (assignments): 2813
48+
// Notification: Strong component statistics for initialization (2822):
49+
// * Single equations (assignments): 2815
5050
// * Array equations: 6
5151
// * Algorithm blocks: 0
5252
// * Record equations: 0
@@ -64,8 +64,8 @@ runScript(modelTesting);getErrorString();
6464
// * Number of discrete variables: 0 ('-d=discreteinfo' for list of discrete vars)
6565
// * Number of discrete states: 0 ('-d=discreteinfo' for list of discrete states)
6666
// * Top-level inputs: 0
67-
// Notification: Strong component statistics for simulation (1341):
68-
// * Single equations (assignments): 1340
67+
// Notification: Strong component statistics for simulation (1343):
68+
// * Single equations (assignments): 1342
6969
// * Array equations: 0
7070
// * Algorithm blocks: 0
7171
// * Record equations: 0

0 commit comments

Comments
 (0)