Opened 8 years ago
Last modified 8 years ago
#4416 new defect
Incorrect results are obtained if the residual is overly sensitive to the tear variables.
Reported by: | Owned by: | somebody | |
---|---|---|---|
Priority: | high | Milestone: | Future |
Component: | *unknown* | Version: | v1.11.0 |
Keywords: | Cc: | Patrick Täuber |
Description
Incorrect results are obtained if the residual is overly sensitive to the tear variables. An example triggering this behavior is available at:
https://github.com/baharev/failure-modes-of-tearing/blob/master/tearing_enabled/example_1.mo
An in-depth discussion why this is happening is given in Section 3.1 of
https://github.com/baharev/failure-modes-of-tearing/blob/master/failure_modes_of_tearing.pdf
Note that OpenModelica must fail on this example; that is just unavoidable. The issue here is that OpenModelica does not recognize that it has failed, and incorrectly claims that everything went OK, even though many variables have completely rubbish values.
You cannot fix this in the traditional setup. Probably the best thing to do is to substitute the solution vector back into the original system, and check whether the original system is satisfied too. If not, stop and report failure, and tell the user to turn off tearing, and use sparse linear algebra instead.
I am available for discussion in person at the 12th International Modelica Conference 2017; I will stay at the Clarion Congress Hotel.