You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
`qmin` (alongside `qmax`, `gamma`, `beta1/beta2`, `qsteady_*`,
`qoldinit`) moved off `DEOptions` and onto the controller object in v7.
The out-of-domain rejection path in `handle_step_rejection!` was still
reaching for the old `integrator.opts.qmin`, which throws on the v7
`DEOptions` struct — only the legacy DelayDiffEq constructor still
mentions it.
Surface this through the controller interface rather than a one-off
`hasfield` walk: a new `get_qmin(integrator)` (with implementations
dispatched on each concrete controller cache) returns the minimum
step-size shrinkage factor used by the integrator's controller.
`handle_step_rejection!` calls it instead of `integrator.opts.qmin`.
Per-cache implementations:
- `IControllerCache`, `PIControllerCache`, `PredictiveControllerCache`
return their controller's `qmin` field.
- `PIDControllerCache` has no `qmin` (it limits dt via `limiter` +
`accept_safety` instead) and returns the historical default `1 // 5`
so the out-of-domain shrink path still has something to multiply by.
- `DummyControllerCache` (BDF / Nordsieck — algorithms that own the
step-size logic) reads `integrator.alg.qmin` if present, else falls
back to the historical default.
- `CompositeControllerCache` delegates to the currently active
sub-cache, mirroring how `stepsize_controller!` and friends dispatch.
Refresh the `PredictiveController` docstring (which still showed the
old `integrator.opts.qmin/qmax/qsteady_*/gamma` interface) to match the
actual v7 implementation that destructures from `cache.controller`,
and update two stale `# equivalent to integrator.opts.gamma` comments
in `lib/OrdinaryDiffEqBDF/src/controllers.jl`.
Reported in
NumericalMathematics/PositiveIntegrators.jl#194 (comment)
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
0 commit comments