Closed AliceHarang closed 1 year ago
Need to improve the crash detection: Calculate the critical time-step function of the previous ones.
dt<XParam.dtmin
or dt<0.1*Xloop.dtmin
On one end the dt<XParam.dtmin
is simple and easy for user to control
On the other end dt<0.1*Xloop.dtmin
may be more sensitive and detect a wider range of crash. but without a test crash model it is difficult to know .
Some crash do not affect the model timestep/minimum timestep (e.g. +INF) but we can probably look at the largest time step as well as the smallest to find crazy values.
We have a user defined dtmin and dtmax that detects the crashes using both the minimum timestep and maximum timestep.
Timestep is a good value to look at because locally dt approx to (sqrt(g*h) + hypot(u,v))/dx
Implementing that technique would move the crash detection inside the timestep calculation but that is a more complex operation and more code changes. Should that detection be moved to post v1.0?
I suggest we do:
This development is useful to detect the code crashes, locate the source and understand the origin of the crash. It detects the crash based on the time steps and create a map of the variables at the last steps. It has been test on a time steps getting too small during the simulation, with different zones output and multi-resolution grid.
Creation of a Crash detection to stop the run if the time-step collapses.