Opened 11 years ago
Closed 10 years ago
#2432 closed defect (fixed)
no support for mixed systems containing algorithms
Reported by: | Lennart Ochel | Owned by: | Lennart Ochel |
---|---|---|---|
Priority: | blocker | Milestone: | 1.9.1 |
Component: | Backend | Version: | trunk |
Keywords: | Cc: | Patrick Täuber, Martin Sjölund, Adrian Pop |
Description (last modified by )
It seems that there is no support for mixed systems that contain algorithms.
Example:
model test Real a; Integer b; algorithm b:=if a > 0 then 1 else -1; algorithm a:=b * time; end test;
Output:
Translation 13:38:22 0:0-0:0 Internal error ./Compiler/BackEnd/SimCodeUtil.mo: function createSimCode failed [Transformation from optimised DAE to simulation code structure failed] Translation 13:38:22 0:0-0:0 Internal error ./Compiler/BackEnd/SimCodeUtil.mo: function createEquationsForSystem1 failed Translation 13:38:22 0:0-0:0 Internal error ./Compiler/BackEnd/SimCodeUtil.mo: function createEquationsForSystem1 failed for component {{1:1}, {2:2} Size: 1 No analytic jacobian} Size: 1 Translation 13:38:22 0:0-0:0 Internal error ./Compiler/BackEnd/SimCodeUtil.mo: function createOdeSystem failed for component {{1:1}, {2:2} Size: 1 No analytic jacobian} Size: 1 Translation 13:38:22 0:0-0:0 Internal error ./Compiler/BackEnd/SimCodeUtil.mo: function extractDiscEqs failed!
Change History (15)
comment:1 by , 11 years ago
Cc: | added |
---|---|
Owner: | changed from | to
Status: | new → assigned |
comment:2 by , 11 years ago
Cc: | added |
---|
comment:4 by , 11 years ago
Owner: | changed from | to
---|
yes, Martin is right.
We haven't support for mixed integer system at all.
comment:5 by , 11 years ago
Cc: | added; removed |
---|
comment:6 by , 11 years ago
Owner: | changed from | to
---|
comment:7 by , 11 years ago
Minor modifications to the initial example to get more interesting trajectories:
model test Real a; Integer b; algorithm b:=if a > 0 then integer(time*10) else -integer(time*10); algorithm a:=b * time; end test;
comment:8 by , 11 years ago
Description: | modified (diff) |
---|
follow-up: 10 comment:9 by , 11 years ago
With the following modification this model works fine using OpenModelica:
model test Real a; Integer b; Boolean c; algorithm c := a > 0; algorithm b := if c then integer(time*10) else -integer(time*10); algorithm a := b * time; end test;
follow-up: 11 comment:10 by , 11 years ago
Replying to lochel:
With the following modification this model works fine using OpenModelica:
model test Real a; Integer b; Boolean c; algorithm c := a > 0; algorithm b := if c then integer(time*10) else -integer(time*10); algorithm a := b * time; end test;
That model doesn't work neither for me. Also same error message.
comment:11 by , 11 years ago
Cc: | added; removed |
---|
comment:12 by , 11 years ago
Description: | modified (diff) |
---|
comment:13 by , 11 years ago
Now, it is also not working on Windows any more.
1.9.1+dev (r17852) (RML version)
comment:14 by , 10 years ago
Owner: | changed from | to
---|---|
Status: | assigned → accepted |
comment:15 by , 10 years ago
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
Fixed and test added in r22641.
Probably OpenModelica is not able to solve any mixed system containing integer variables. It seems that only Boolean variables are supported – in some way. Mixed systems containing integer variables are only solved using tearing. So this is probably a tearing ticket?!