Opened 7 years ago

Last modified 7 years ago

#4418 new defect

Incorrect results are obtained if the residual is insensitive to the tear variables

Reported by: Ali Baharev <ali.baharev@…> Owned by: somebody
Priority: high Milestone: Future
Component: *unknown* Version: v1.11.0
Keywords: Cc: ptaeuber

Description (last modified by lochel)

Similar to ticket:4416 but the underlying causes are different, and the tool also shows slightly different behavior.

Incorrect results are obtained if the residual is insensitive 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_2.mo

An in-depth discussion why this is happening is given in Section 3.2 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 in the end that everything went OK, even though many variables have rubbish values. It did emit some obscure warnings during the intermediate computations. The warnings hardly tell anything to non-experts.

You cannot fix this in the traditional setup. As with ticket 4416, 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.

Change History (2)

comment:1 Changed 7 years ago by lochel

  • Cc ptaeuber added

comment:2 Changed 7 years ago by lochel

  • Description modified (diff)
Note: See TracTickets for help on using tickets.