# Number of solvers available for DifferentialEquations.jl?

**URL:** <https://discourse.julialang.org/t/number-of-solvers-available-for-differentialequations-jl/107607>\
**Category:** Modelling & Simulations\
**Tags:** question, package, differentialequation\
**Created:** [December 14, 2023, 12:41pm UTC](https://discourse.julialang.org/t/number-of-solvers-available-for-differentialequations-jl/107607 "2023-12-14T12:41:31Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [December 14, 2023, 12:41pm UTC](https://discourse.julialang.org/t/number-of-solvers-available-for-differentialequations-jl/107607/1 "2023-12-14T12:41:31Z")

</div>

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…

---

<div class="post-metadata">

**Author:** ![Datseris](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/datseris/32/13406_2.png) [@Datseris](https://discourse.julialang.org/u/Datseris)\
**Post date:** [December 14, 2023, 1:11pm UTC](https://discourse.julialang.org/t/number-of-solvers-available-for-differentialequations-jl/107607/2 "2023-12-14T13:11:02Z")

</div>

Thousands. E.g., just for ODE: [ODE Solvers · DifferentialEquations.jl](https://docs.sciml.ai/DiffEqDocs/dev/solvers/ode_solve/)

---

<div class="post-metadata">

**Author:** ![Oscar\_Smith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oscar_smith/32/25343_2.png) [@Oscar\_Smith](https://discourse.julialang.org/u/Oscar_Smith)\
**Post date:** [December 14, 2023, 1:59pm UTC](https://discourse.julialang.org/t/number-of-solvers-available-for-differentialequations-jl/107607/3 "2023-12-14T13:59:17Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [December 14, 2023, 6:40pm UTC](https://discourse.julialang.org/t/number-of-solvers-available-for-differentialequations-jl/107607/4 "2023-12-14T18:40:56Z")

</div>

> [@Datseris](#):
>
> Thousands. E.g., just for ODE: [ODE Solvers · DifferentialEquations.jl](https://docs.sciml.ai/DiffEqDocs/dev/solvers/ode_solve/)

That’s missing the tableau choices:

[https://docs.sciml.ai/DiffEqDevDocs/stable/internals/tableaus/](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.

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [December 14, 2023, 6:55pm UTC](https://discourse.julialang.org/t/number-of-solvers-available-for-differentialequations-jl/107607/5 "2023-12-14T18:55:40Z")

</div>

This is what I wrote for now: [References · Tethers.jl](https://ufechner7.github.io/Tethers.jl/dev/references/)

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [December 14, 2023, 7:21pm UTC](https://discourse.julialang.org/t/number-of-solvers-available-for-differentialequations-jl/107607/6 "2023-12-14T19:21:08Z")

</div>

To be honest: [Assimulo](https://jmodelica.org/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…

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [December 14, 2023, 7:27pm UTC](https://discourse.julialang.org/t/number-of-solvers-available-for-differentialequations-jl/107607/7 "2023-12-14T19:27:53Z")

</div>

> [@ufechner7](#):
>
> 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.

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [December 14, 2023, 8:07pm UTC](https://discourse.julialang.org/t/number-of-solvers-available-for-differentialequations-jl/107607/8 "2023-12-14T20:07:17Z")

</div>

> [@ChrisRackauckas](#):
>
> If you have recommendations for what to do with the docs I would be happy to take improvements.

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…

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [December 14, 2023, 10:14pm UTC](https://discourse.julialang.org/t/number-of-solvers-available-for-differentialequations-jl/107607/9 "2023-12-14T22:14:23Z")

</div>

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.
