@@ -32,10 +32,13 @@ function DiffEqBase.__init(prob::AbstractSDDEProblem,# TODO DiffEqBasee.Abstract
3232 reltol = nothing ,
3333 qmax = StochasticDiffEq. qmax_default (getalg (alg)),
3434 qmin = StochasticDiffEq. qmin_default (getalg (alg)),
35+ qsteady_min = StochasticDiffEq. qsteady_min_default (alg),
36+ qsteady_max = StochasticDiffEq. qsteady_max_default (alg),
3537 qoldinit = 1 // 10 ^ 4 , fullnormalize = true ,
38+ controller = nothing ,
3639 failfactor = 2 ,
37- beta2 = StochasticDiffEq . beta2_default ( getalg (alg)) ,
38- beta1 = StochasticDiffEq . beta1_default ( getalg (alg), beta2) ,
40+ beta2 = nothing ,
41+ beta1 = nothing ,
3942 delta = StochasticDiffEq. delta_default (getalg (alg)),
4043 maxiters = adaptive ? 1000000 : typemax (Int),
4144 dtmax = eltype (prob. tspan)((prob. tspan[end ] - prob. tspan[1 ])),
@@ -334,22 +337,41 @@ function DiffEqBase.__init(prob::AbstractSDDEProblem,# TODO DiffEqBasee.Abstract
334337 save_end_user = save_end
335338 save_end = save_end === nothing ? save_everystep || isempty (saveat) || saveat isa Number || prob. tspan[2 ] in saveat : save_end
336339
340+ # Setting up the step size controller
341+ if (beta1 != = nothing || beta2 != = nothing ) && controller != = nothing
342+ throw (ArgumentError (
343+ " Setting both the legacy PID parameters `beta1, beta2 = $((beta1, beta2)) ` and the `controller = $controller ` is not allowed." ))
344+ end
345+
346+ if (beta1 != = nothing || beta2 != = nothing )
347+ message = " Providing the legacy PID parameters `beta1, beta2` is deprecated. Use the keyword argument `controller` instead."
348+ Base. depwarn (message, :init )
349+ Base. depwarn (message, :solve )
350+ end
351+
352+ if controller === nothing
353+ controller = StochasticDiffEq. default_controller (getalg (alg), cache, qoldinit, beta1, beta2)
354+ end
355+
337356 opts = StochasticDiffEq. SDEOptions (maxiters, save_everystep,
338357 adaptive, abstol_internal,
339- reltol_internal, QT (gamma),
358+ reltol_internal,
359+ QT (gamma),
340360 QT (qmax), QT (qmin),
361+ QT (qsteady_max),QT (qsteady_min),
362+ QT (qoldinit),
341363 QT (failfactor),
342- tType (dtmax), tType (dtmin), internalnorm, save_idxs,
364+ tType (dtmax), tType (dtmin),
365+ controller,
366+ internalnorm, save_idxs,
343367 tstops_internal, saveat_internal,
344368 d_discontinuities_internal,
345369 tstops, saveat, d_discontinuities,
346370 userdata,
347371 progress, progress_steps,
348372 progress_name, progress_message,
349373 timeseries_errors, dense_errors,
350- QT (beta1), QT (beta2),
351374 convert .(uBottomEltypeNoUnits, delta),
352- QT (qoldinit),
353375 dense, save_on, save_start, save_end, save_end_user, save_noise,
354376 callbacks_internal, isoutofdomain, unstable_check,
355377 verbose, calck, force_dtmin,
0 commit comments