Unfortunately, you have come across the only known example that doesn't build due to this error. (There is also the regression testing model IncompressibleFluidNetwork_StandardWaterOnePhase
exhibiting the same issue.) For me, using 12.3, it doesn't even build with nNodes
= 1 (I'll come back to this below).
Explaining what the problem really is here is a bit complicated, but it has to do with the de facto standard procedure for dealing with so-called mixed equation systems in Modelica, which requires a separation into one part of the equation system having only discrete-valued variables (such as Integer
and Boolean
variables), and one part with only continuous-valued (Real
) variables. In practice, there are tricks that can be applied to obtain the separation even when it may look impossible at first glance, like here, where there are algorithms involving a mix of variables. While we are generally able to work things out, what you have encountered is an exception.
I wanted to see if there was something that we could learn by looking at the special cases of small values of nNodes
, and found that – in line with your observations for WSM 12.2 – the case of nNodes
= 1 can actually be fixed by the addition of some randomization to our algorithm. While we're trying hard to avoid such randomization because unpredictable build success is probably most of the time worse than no success at all, the important lesson learned is that a solution is actually hiding somewhere in the exponentially large combinatorial search space. One just needs the right (predictable) search algorithm to find it quickly.
For nNodes
= 2, randomization is no longer enough, but one could hope that a systematic (predictable) way of solving the nNodes
= 1 case would actually work also for higher values of nNodes
… Unfortunately, because of the domain-specific nature of the problem and how it interacts with heuristics that need to work well across all domains, I cannot give any estimate of when the issue might get fixed.