SciMLBenchmarks.jl: Comparison with Fixed timestep methods

Hi,

I have run a benchmark to compare adaptive and fixed step size method DPRKN12():

tols=abstols=reltols=[1e-8, 1e-9, 1e-10, 1e-11, 1e-12, 1e-13, 1e-14, 1e-15]
dts= [15., 25.,35., 50., 65., 75., 100., 125.]

setups = [
           Dict(:alg=>DPRKN12(),:adaptive=>true)
           Dict(:alg=>DPRKN12(),:adaptive=>false,:dts=>dts)   
]

solnames = ["DPRKN12 (adaptive)", "DPRKN12 (fixed)"]

wp1 = WorkPrecisionSet(prob,abstols,reltols,setups;appxsol=test_solx2nd,save_everystep=false,numruns=10,names=solnames);

plot(wp1)


I got the following warning which I relate to "Dict(:alg=>DPRKN12(),:adaptive=>false,:dts=>dts) " code. Did I make something wrong?

“┌ Warning: Warning: Unrecognized keyword arguments found. Future versions will error.
│ The only allowed keyword arguments to solve are: …”

Thanks,
M.

Can you share what it said? ... is not very informative when what comes after that tells you exactly what caused the issue.

1 Like

Okay, this is the full message:

Blockquote
┌ Warning: Warning: Unrecognized keyword arguments found. Future versions will error.
│ The only allowed keyword arguments to solve are:
│ (:dense, :saveat, :save_idxs, :tstops, :d_discontinuities, :save_everystep, :save_on, :save_start, :save_end, :initialize_save, :adaptive, :abstol, :reltol, :dt, :dtmax, :dtmin, :force_dtmin, :internalnorm, :controller, :gamma, :beta1, :beta2, :qmax, :qmin, :qsteady_min, :qsteady_max, :qoldinit, :failfactor, :calck, :alias_u0, :maxiters, :callback, :isoutofdomain, :unstable_check, :verbose, :merge_callbacks, :progress, :progress_steps, :progress_name, :progress_message, :timeseries_errors, :dense_errors, :calculate_errors, :initializealg, :alg, :save_noise, :delta, :seed, :alg_hints, :kwargshandle, :trajectories, :batch_size, :sensealg, :advance_to_tstop, :stop_at_next_tstop)
│ See Common Solver Options · DifferentialEquations.jl for more details.

│ Set kwargshandle=KeywordArgError for an error message and more details.
│ Set kwargshandle=KeywordArgSilent to ignore this message.
└ @ DiffEqBase /home/mikel/.julia/packages/DiffEqBase/ziNGu/src/solve.jl:210
Blockquote

Are you on an old version? The next thing that it would print out is the name of the extra argument? Can you share ]st?

I am using Julia 1.6.6 version and ] st info is:

[6e4b80f9] BenchmarkTools v1.3.1
[2b5f629d] DiffEqBase v6.83.1
[f3b72e0c] DiffEqDevTools v2.29.0
[5789e2e9] FileIO v1.14.0
[0e44f5e4] Hwloc v2.0.0
[7073ff75] IJulia v1.23.3
[58bc7355] IRKGaussLegendre v0.1.1
[033835bb] JLD2 v0.4.22
[b964fa9f] LaTeXStrings v1.3.0
[0db19996] NBInclude v2.3.0
[1dea7af3] OrdinaryDiffEq v5.71.0
[d96e819e] Parameters v0.12.3
[91a5bcdd] Plots v1.27.6
[731186ca] RecursiveArrayTools v2.26.3
[189a3867] Reexport v1.2.2
[37e2e46d] LinearAlgebra

Which extra argument do you mean to print?
Anyway, I would like to clarify that the result is correct (I attach the result of the plot(w1)). The drawback is that the warning messages fill the Jupyter document.

plotw1

What happens if you do ]up? You’re on old versions. If that doesn’t work, ]add DiffEqDevTools@2.31

I do ] up, and warning messages have disappeared.

Thank a lot

  • For another time, I will previously update to the latest version.

Sorry, but I’m making some improvements to our IRKGL16 implementation and I have a new question. In the future, can we use kwargs keyword arguments in the ODEProblem definition?

 ODEProblem(f::ODEFunction,u0,tspan,p=NullParameters();kwargs...)

Now, we use kwargs arguments in the IRKGL16() mixed precision implementation and the execution shows the following warning message:

 prob= ODEProblem(NbodyODE!,u0,tspan,Gm1;lpp=lpp)
 sol=solve(prob,IRKGL16(), reltol=1e-20, abstol=1e-20, adaptive=true)
┌ Warning: Unrecognized keyword arguments found. Future versions will error.
│ The only allowed keyword arguments to `solve` are:
│ (:dense, :saveat, :save_idxs, :tstops, :d_discontinuities, :save_everystep, :save_on, :save_start, :save_end, :initialize_save, :adaptive, :abstol, :reltol, :dt, :dtmax, :dtmin, :force_dtmin, :internalnorm, :controller, :gamma, :beta1, :beta2, :qmax, :qmin, :qsteady_min, :qsteady_max, :qoldinit, :failfactor, :calck, :alias_u0, :maxiters, :callback, :isoutofdomain, :unstable_check, :verbose, :merge_callbacks, :progress, :progress_steps, :progress_name, :progress_message, :timeseries_errors, :dense_errors, :weak_timeseries_errors, :weak_dense_errors, :calculate_errors, :initializealg, :alg, :save_noise, :delta, :seed, :alg_hints, :kwargshandle, :trajectories, :batch_size, :sensealg, :advance_to_tstop, :stop_at_next_tstop, :default_set, :second_time, :prob_choice)
│ 
│ See https://diffeq.sciml.ai/stable/basics/common_solver_opts/ for more details.
│ 
│ Set kwargshandle=KeywordArgError for an error message.
│ Set kwargshandle=KeywordArgSilent to ignore this message.
└ @ DiffEqBase /home/mikel/.julia/packages/DiffEqBase/HDcso/src/solve.jl:816

Unrecognized keyword arguments: [:lpp]

Áfter update, I understand I am using the last version,

 [6e4b80f9] BenchmarkTools v1.3.1
  [2b5f629d] DiffEqBase v6.94.4
  [f3b72e0c] DiffEqDevTools v2.31.0
  [5789e2e9] FileIO v1.15.0
  [0e44f5e4] Hwloc v2.0.0
  [7073ff75] IJulia v1.23.3
  [58bc7355] IRKGaussLegendre v0.1.2
  [033835bb] JLD2 v0.4.22
  [b964fa9f] LaTeXStrings v1.3.0
  [0db19996] NBInclude v2.3.0
  [1dea7af3] OrdinaryDiffEq v6.19.3
  [d96e819e] Parameters v0.12.3
  [91a5bcdd] Plots v1.31.5
  [731186ca] RecursiveArrayTools v2.31.2
  [189a3867] Reexport v1.2.2
  [37e2e46d] LinearAlgebra

Thank you in advance for your help

M.

Yes. lpp isn’t a valid keyword argument though. If it’s an algorithm-specific argument, then it should go into the algorithm, i.e. IRKGL16(;lpp=lpp) or IRKGL16(lpp).

“lpp” is not algorithm-specific argument.
Do you have an example where kwargs keyword arguments are applied ?

Regards,
M.

What do you mean? The list is just Common Solver Options · DifferentialEquations.jl

What does it do?

I was wrong and I have already fixed the problem with the “lpp” argument.
Thank you, and I hope to finish the improvements in the IRKGL16 implementation soon.

1 Like

Good to hear. Yeah I saw some of the benchmarks and it looks really good!