Opened 10 years ago

Closed 10 years ago

#3251 closed defect (fixed)

Wrong time stamps recorded when DASSL fails

Reported by: Francesco Casella Owned by: Willi Braun
Priority: critical Milestone: 1.9.3
Component: Run-time Version: trunk
Keywords: Cc: Lennart Ochel, Willi Braun, Vitalij Ruge, stefano.carli@…

Description

Sometimes a simulation fails due to problems with the nonlinear solver or with DASSL being unable to proceed beyond a certain point. Consider this example:

model FiniteEscape
  Real x(start = 0, fixed = true);
  Real y(start = 0, fixed = true);
equation
  der(x) = 2;
  der(y) = 1/(x-1);
annotation(experiment(StopTime = 1,Tolerance = 1e-10));
end FiniteEscape;

For some reason, in these cases the last time value (0.494 in the example) is less than the previous one (0.498 in the example). This, besides being wrong, can cause errors and crashes in all the post-processing tools that assume time is always monotonically increasing.

Please make sure that also in case of abnormal termination, the last recorded result has a time stamp which is not less than the previous one. It would also be nice if the last recorded result actually had the right time stamp, which is definitely not the case in the shown example (should be 0.49999999, not 0.494).

Change History (2)

comment:1 by Willi Braun, 10 years ago

Owner: changed from somebody to Willi Braun
Status: newaccepted

comment:2 by Willi Braun, 10 years ago

Resolution: fixed
Status: acceptedclosed

fixed in r25386.

Version 0, edited 10 years ago by Willi Braun (next)
Note: See TracTickets for help on using tickets.