Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
fixes #2492.
That said, @ChrisRackauckas our initdt selection does seem like we never considered the case where
iszero(u0)
. When this happens, ourd₀
is 0, so ourdt₀ = smalldt
, which puts a hard cap on our return value of100*smalldt
, which is often incredibly pessimistic. Would it be reasonable to have the 2nd stage of this algorithm loop when100dt₀ < dt₁
(i.e. we will do an extra function call att + dt₁
to see if ourdt₁
guess was reasonable. This would cost an extra function eval, but in this case, ourdt₁
is 300x bigger than ourd₀
, which will require taking multiple steps with basically no progress before our timestepping is reasonable.