Number of solvers available for DifferentialEquations.jl?

I am preparing a talk. I would like to know: How many different solvers are available when you use the package DifferentialEquations.jl?

I don’t need the exact number, just an estimate…

Thousands. E.g., just for ODE: ODE Solvers · DifferentialEquations.jl

1 Like

it depends on how you count. there are roughly 300 named algorithms from about a dozen different categories of algorithms (e.g. bdf vs rosenbrock etc). however especially for the stiff solvers, there are are probably a few hundred ways of customizing each of them from changing autodiff options to changing how the linear solves are performed. furthermore there were also facilities for making auto-switch integrators which switch between arbitrary other algorithms based on customizable heuristics, so the number of possible solvers is roughly infinite

7 Likes

That’s missing the tableau choices:

https://docs.sciml.ai/DiffEqDevDocs/stable/internals/tableaus/

And there’s a few more choices too since you can use the BVP solvers to solve ODEs, and other things too.

I usually say 300 because I counted something around that one time like 5 years ago and haven’t decided to recount. It’s probably close enough.

As Oscar says though, in many libraries you’d have DASSL vs DASPK which is just changing the linear solver. If you start to say, okay you can swap out linear solvers and nonlinear solvers and AD modes and etc., yeah… combinatorics.

1 Like

This is what I wrote for now: References · Tethers.jl

To be honest: Assimulo is much smaller than DifferentialEquations.jl …

But it has a good documentation which is much easier to read for students than the documentation of DifferentialEquations…

If you have recommendations for what to do with the docs I would be happy to take improvements. “Make it better” is not actionable though.

2 Likes

I will think about it… But it is logical that it is easier to document a simple library like Assimulo than a very powerful, but also somewhat complex library like DifferentialEquations…

1 Like

Indeed, and I think it’s at the point where it has the information in there so it’s not just a thing of adding more. It’s more about the organization of the information. We’ll be working on that in the near future and have some ideas.

1 Like