For awhile I have been saying that JuliaDiffEq really needs some fast high accuracy stiff solvers and symplectic methods to take it to the next level. I am happy to report that these features have arived, along with some other exciting updates. And yes, they benchmark really well. With new Rosenbrock methods specifically designed for stiff nonlinear parabolic PDE discretizations, SSPRK enhancements specifically for hyperbolic PDEs, and symplectic methods for Hamiltonian systems, physics can look at these release notes with glee. Here’s the full ecosystem release notes.
In the 2.0 state of the ecosystem post it was noted that, now that we have a clearly laid out and expansive common API, the next goal is to fill it in. This set of releases tackles the lowest hanging fruits in that battle. Specifically, the interop packages were setup to be as complete in their interfaces as possible, and the existing methods which could expand were expanded. Time for specifics.
This marks the release of ecosystem version 2.0. All of the issues got looked over. All (yes all!) of the API suggestions that were recorded in issues in JuliaDiffEq packages have been addressed! Below are the API changes that have occurred. This marks a really good moment for the JuliaDiffEq ecosystem because it means all of the long-standing planned API changes are complete. Of course new things may come up, but there are no more planned changes to core functionality. This means that we can simply work on new features in the future (and of course field bug reports as they come). A blog post detailing our full 2.0 achievements plus our 3.0 goals will come out at our one year anniversary. But for now I want to address what the API changes are, and the new features of this latest update.
DifferentialEquations v1.9.1 is a feature update which, well, brings a lot of new features. But before we get started, there is one thing to highlight:
There will be a workshop on DifferentialEquations.jl at this year’s JuliaCon! The title is “The Unique Features and Performance of DifferentialEquations.jl”. The goal will be to teach new users how to solve a wide variety of differential equations, and show how to achieve the best possible performance. I hope to lead users through an example problem: start with ODEs and build a simple model. I will show the tools for analyzing the solution to ODEs, show how to choose the best solver for your problem, show how to use non-standard features like arbitrary precision arithmetic. From there, we seamlessly flow into more in-depth analysis and models. We will start estimating parameters of the ODEs, and then make the models more realistic by adding delays, stochasticity (randomness), and Gillespie models (discrete stochastic models related to differential equations), and running stochastic Monte Carlo experiments in parallel (in a way that will automatically parallelizes across multiple nodes of an HPC!).