DifferentialEquations.jl v1.6.0

DifferentialEquations.jl v1.6.0 is a stable version of the JuliaDiffEq ecosystem. This tag includes many new features, including:

Over the last few months these changes (among others) have been part of a large feature expansion which was laid out in a previous blog post. While not entirely complete, the vast majority of API changes which were previously discussed are now complete (only leaving out the choice of linear/nonlinear solvers, which is currently not available). Thus the API is pretty much set and I will be letting JuliaDiffEq have some time to stabilize its ecosystem. This means I will not be focusing on new features for awhile, and instead be working mostly on bug fixes, documentation, and applications. If you encounter any bugs, please file an issue at the DifferentialEquations.jl repository.

A stable version of the documentation for v1.6.0 has also been tagged. While this shouldn’t be too much of a big deal given that the API has stabilized, this means that users of previous versions will always have a documentation version which matches the package version they are using to better help long-term usage. Also, this is a good time for newcomers interested in the ecosystem to explore the code and its designs. See the Julia Google Summer of Code projects page for some good beginner projects.

We hope that this stable version gives everyone who is new to Julia and JuliaDiffEq some time to explore the ecosystem and start using it in various applications.

Immediate Future Directions

As noted above, for the immediate future development will be focusing on bug fixes and enhancing the documentation. In the meantime, I am working on publishing new algorithms for state-dependent delay equations and semi-stiff stochastic differential equations, along with better implementations of stiff solvers for ODEs. As these become available they will be added to the ecosystem. Other work throughout the ecosystem will be more internal, including:

  • Automatic conversion/promotion of problems to expand the reach of each solver.
  • More problem types: more DAEs, IMEX, 2nd order ODEs, Partitioned ODEs, and symplectic problems.
  • DiffEqDiffTools.jl for more efficient usage of Jacobians
  • Internals changes to allow for Fun types in OrdinaryDiffEq.jl methods
  • An internals change of StochasticDiffEq.jl to be like OrdinaryDiffEq.jl and have the integrator interface

For more details on these changes, see this blog post. None of these changes are expected to break user codes.