Comparing ODE's

I would like to compare the simulation result of multiple version of ODE solvers (i.e compare different tolerance values and use different solvers). Is there a way that I can create a dictionary of the algorithms and their settings or something similar and pass it as an argument in place of sol=solve(prob, alg= dict_of_alg[0]) ?

Check out GitHub - SciML/DiffEqDevTools.jl: Benchmarking, testing, and development tools for differential equations and scientific machine learning (SciML)

Specifically, look at how the benchmarks are done:

https://benchmarks.sciml.ai/html/MultiLanguage/wrapper_packages.html
https://benchmarks.sciml.ai/html/StiffODE/VanDerPol.html

I looked into DiffEqDevTools, it has some interesting benchmarking options.

I would however also like to just plot multiple solutions of solvers on top of each other. Is that possible using WorkPrecisionSet?

Hmm, it doesn’t have that specific feature. I see. That would be good to package up into the dev tools though, so when you finish something up for what you need, if you don’t mind sharing the code that would be nice. I think a lot of people do similar tolerance studies so having a single form of it would be good.

Currently I got away with just computing multiple solve functions as I could not find a efficient way to iterate through the different algorithms.