This is a package for solving numerically solving differential equations in Julia by Chris Rackauckas. The purpose of this package is to supply efficient Julia implementations of solvers for various differential equations. Equations within the realm of this package include (but are not limited to):
- Ordinary differential equations (ODEs)
- Stochastic ordinary differential equations (SODEs or SDEs)
- (Stochastic) partial differential equations ((S)PDEs) (with both finite difference and finite element methods)
- Algebraic differential equations
- Differential delay equations.
It includes well-optimized implementations classic algorithms and ones from recent research, including algorithms optimized for high-precision and HPC applications. It integrates with the Julia package sphere, for example using Juno's progress meter, and wraps other differential equation solvers (ODE.jl, ODEInterface.jl) so that many different methods for solving the equations can be accessed by simply switching a keyword argument.
For information on using the package, see the documentation.
All of the algorithms are thoroughly tested to ensure accuracy. Convergence tests are included in the test/ folder. The algorithms were also tested to show correctness with nontrivial behavior such as Turing morphogenesis. Example IJulia notebooks can be found in the examples folder. If you find any equation where there seems to be an error, please open an issue.
If you have any questions, or just want to chat about solvers/using the package, please feel free to message me in the Gitter channel. For bug reports, feature requests, etc., please submit an issue. For help installing conditional dependencies such as the ODE.jl wrappers, see the Conditional Dependences manual page. If you're interested in contributing, please see the Contributor's Guide.