Opened 9 years ago

Closed 4 years ago

#3302 closed defect (fixed)

"replaceable parameter record" and inner/outer - flattening fails when array size in record changes

Reported by: c.schulze@… Owned by: perost
Priority: blocker Milestone: 1.16.0
Component: New Instantiation Version: trunk
Keywords: Cc:

Description

In the attached file is a package with two testers.

In Tester_workingButWithError the model can be translated and the results are correct (see ticket #3300 ). In the second Tester_FlatteningFails the flattening fails, since the vector sizes of the records change.

Unfortunately this is an important language feature, that blocks the usage of the TIL Library ( http://www.tlk-thermo.com ) and e.g. the ClaRa Library ( http://www.claralib.com ) in OpenModelica.

Attachments (1)

TestRecordInConnector.mo (1.4 KB) - added by c.schulze@… 9 years ago.
test package

Download all attachments as: .zip

Change History (7)

Changed 9 years ago by c.schulze@…

test package

comment:1 Changed 9 years ago by adrpo

  • Component changed from Backend to Frontend
  • Owner changed from somebody to adrpo
  • Status changed from new to accepted

comment:2 Changed 9 years ago by rfranke

Good that you bring this up and give it some priority. The PowerSystems library suffers from this as well. See also #3183.

comment:3 Changed 9 years ago by c.schulze@…

Nice to hear that others share these problems ;)

It seems that a small modification enables OpenModelica to run the testers:

model Submodel

outer SIM sim;
parameter Ra r(n=sim.r1.n) = sim.r1;

end Submodel;

comment:4 Changed 6 years ago by adrpo

  • Component changed from Frontend to New Instantiation

With -d=newInst using script:

loadFile("TestRecordInConnector.mo"); getErrorString();
instantiateModel(TestRecordInConnector.Tester_FlatteningFails); getErrorString();
instantiateModel(TestRecordInConnector.Tester_workingButWithError); getErrorString();

we get:

adrpo33@ida-0030 MINGW64 /c/home/adrpo33/dev/OMTesting/bugs/3302
$ ~/dev/OpenModelica/build/bin/omc -d=newInst t.mos
true
""
""
"[C:/home/adrpo33/dev/OMTesting/bugs/3302/TestRecordInConnector.mo:5:5-5:35:writable] Error: Could not evaluate structural parameter (or constant): submodel.r.n which gives dimensions of array: x. Array dimensions must be known at compile time.
"
""
"[C:/home/adrpo33/dev/OMTesting/bugs/3302/TestRecordInConnector.mo:5:5-5:35:writable] Error: Could not evaluate structural parameter (or constant): submodel.r.n which gives dimensions of array: x. Array dimensions must be known at compile time.

comment:5 follow-up: Changed 6 years ago by casella

  • Milestone changed from Future to 2.0.0
  • Owner changed from adrpo to perost
  • Status changed from accepted to assigned

Probably related to #5243

comment:6 in reply to: ↑ 5 Changed 4 years ago by perost

  • Milestone changed from 2.0.0 to 1.16.0
  • Resolution set to fixed
  • Status changed from assigned to closed

Replying to casella:

Probably related to #5243

Seems likely since the issue is now fixed.

Note: See TracTickets for help on using tickets.