Opened 4 years ago
Closed 4 years ago
#5987 closed defect (fixed)
Ragged arrays not yet supported by the NF
Reported by: | Francesco Casella | Owned by: | Per Östlund |
---|---|---|---|
Priority: | blocker | Milestone: | 2.0.0 |
Component: | New Instantiation | Version: | |
Keywords: | Cc: | Michael Wetter |
Description
Please check Buildings.Examples.HydronicHeating.TwoRoomsWithStorage. The NF reports:
[Buildings latest/HeatTransfer/Data/OpaqueConstructions.mo:9:4-11:111:writable] Error: Ragged dimensions are not yet supported (from dimension '{3, 1}')
I'm not sure I understand where the ragged array is from this message. @perost can you please comment on this? There are several models in the Buildings library that fail because of this issue.
Change History (13)
comment:1 by , 4 years ago
follow-up: 4 comment:2 by , 4 years ago
I see.
Q1: How long would it take to implement this in the NF?
Q2: Is any workaround possible using some parts of the OF to handle this for the time being?
Thanks!
comment:3 by , 4 years ago
Summary: | Issue with ragged arrays and the NF? → Ragged arrays not yet supported by the NF |
---|
comment:4 by , 4 years ago
Replying to casella:
Q1: How long would it take to implement this in the NF?
I need to figure out a solution to this rather tricky issue, which unfortunately is not something I can give a time estimate on.
Q2: Is any workaround possible using some parts of the OF to handle this for the time being?
Not short of using the entire OF. It's not really a case of missing functionality but fundamentally different ways of handling the instantiation.
follow-up: 6 comment:5 by , 4 years ago
OK. It's not really urgent, maybe I'll discuss this with Michael Wetter.
I understand that if the dimensions are the same, the NF can manage. Is that correct?
comment:6 by , 4 years ago
Replying to casella:
I understand that if the dimensions are the same, the NF can manage. Is that correct?
Yes, if a dimension evaluates to an array it will check if all elements have the same value and just use that value.
comment:7 by , 4 years ago
Cc: | added |
---|
@mwetter, could you comment on how much is this feature important for you?
comment:8 by , 4 years ago
Ragged arrays are important and used in many places: Consider a wall with 20 cm concrete and 5 cm insulation. Then, these are modeled with two instances of Buildings.HeatTransfer.Conduction.SingleLayer
, but each instance has a different number of states because they require a different spatial grid to discretize the heat equation.
A similar pattern is used at the room-level: A room can have any number of exterior constructions, but these constructions can have different number of material layers (e.g., one can be a roof, and one can be a wall, with each having a different number of material layers).
comment:9 by , 4 years ago
Yes, I understand this well.
Supporting this feature in the NF is not trivial. As you know, the NF does not expand arrays until the last minute, which is a pre-requisite for our next-generation backend that will not expand arrays at all. I guess that will be interesting for your as well.
For the time being I think we can continue fixing the other issues. At some point we should have a strategic discussion between OSMC and LBL to see where we want to go.
follow-up: 11 comment:10 by , 4 years ago
@perost, you did some work in this area. Now most of these models are failing with no error message, instead of simply complaining about ragged arrays not being implemented.
Could you quickly comment on the status and perspectives?
Thanks!
comment:11 by , 4 years ago
Replying to casella:
@perost, you did some work in this area. Now most of these models are failing with no error message, instead of simply complaining about ragged arrays not being implemented.
Could you quickly comment on the status and perspectives?
Thanks!
Some of the models that used to fail now work, and many of the models that now fail without an error is failing due to unrelated issues (they just get further in the compilation process now). The support for ragged dimensions is by no means complete, but it might be good enough for Buildings now.
comment:12 by , 4 years ago
Excellent, thanks!
As they write on French railroad crossings: "Danger, un train peut en cacher un autre...".
I guess I can close this ticket. I opened #6028 to track the next train.
comment:13 by , 4 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Replying to casella:
It's when array elements contain arrays with different sizes, like this:
This is hard to handle in the NF since complex arrays aren't expanded until the flattening phase.