Feature: stop time adaptivity#914
Conversation
…processing branch
…ls into feature/fes-tstop-adaptivity
Conflicts: HANGELOG.md
| .. versionadded:: 6.1.0 | ||
|
|
||
|
|
||
| .. c:function:: int ARKodeSkipAdaptStopTime(void* arkode_mem, sunbooleantype skip) |
There was a problem hiding this comment.
Should we make this a threshold instead of a boolean? So the check would be something like the following
sunrealtype eta_stop = h_stop / h;
if (eta_stop < skip_adapt_stop_time_eta_threshold)
{
skip_adapt_stop_time = SUNTRUE;
}
else
{
skip_adapt_stop_time = SUNFALSE;
}
so a threshold of 1 skips adaptivity if the stop time reduced the step size and 0 always adapts (the current default behavior).
There was a problem hiding this comment.
In a future release, I think a better default might be 1/eta_max, so any stop time step that can't return to the old step size is ignored.
There was a problem hiding this comment.
Inside IDAStep set tstoplimited = SUNFALSE if the step with stop time step size needs to be reattempted
…ls into feature/fes-tstop-adaptivity
… is always a valid flag
…o implement thresholding within solvers
…und arkode.c:872) since the new unit tests rely on that for testing; will remove this (and adjust conditional to pass unit tests) when other changes are complete
|
In updating this PR, I updated the |
This PR adds optional routines to the SUNDIALS time integrators so that time steps which are shortened to adhere to "stop time" requests will be disregarded from the time step and method order adaptivity processes.
This feature is disabled by default; if after extensive testing we wish to enable this by default, I recommend that this wait until the next major release.