Opened 4 years ago
Last modified 3 years ago
#6196 assigned defect
Bogus linear tearing in Buildings model — at Version 1
Reported by: | Francesco Casella | Owned by: | Karim Adbdelhak |
---|---|---|---|
Priority: | blocker | Milestone: | 1.19.0 |
Component: | Backend | Version: | |
Keywords: | Cc: | Karim Adbdelhak, Michael Wetter |
Description (last modified by )
Please check Buildings.Electrical.AC.ThreePhasesUnbalanced.Validation.IEEETests.Test4NodesFeeder.BalancedStepDown.YD. The model fails during lambda0 initialization with
Failed to solve linear system of equations (no. 569) at time 0.000000, system is singular for U[2, 2]. Matrix U -0 Output vector x [ 1] 0 The default linear solver fails, the fallback solver with total pivoting is started at time 0.000000. That might raise performance issues, for more information use -lv LOG_LS.
The debugger shows that system 569 is torn in this way:
linear (torn), unknowns: 3, iteration variables: 1 (transformer.conv2.terminal_p.i[1]) (torn) transformer.conv3.terminal_p.i[1] := transformer.conv2.terminal_p.i[1] - line2.i3[1] (torn) transformer.conv1.terminal_p.i[1] := transformer.conv2.terminal_p.i[1] + line2.i2[1] (residual) line2.i1[1] + transformer.conv1.terminal_p.i[1] - transformer.conv3.terminal_p.i[1] = 0
It is immediate to see that the term transformer.conv2.terminal_p.i[1]
appears both in transformer.conv3.terminal_p.i[1]
and in transformer.conv1.terminal_p.i[1]
, so when those two are subtracted to compute the residual, its sensitivity w.r.t. its unknown is zero.
I don't know what criterion is used to perform linear tearing, but it's obviously not a good one. Linear systems should be solved with proper pivoting; solving some equations according only to structural information but disregarding the coefficient values can be very dangerous.
Until this issue is solved, I would recommend to disable linear tearing by default. This will sure enough solve a lot of problems in the testsuite. BTW, now that we have sparse solvers to deal with large linear systems, the usefulness of linear tearing is probably quite limited.