SciML is a NumFOCUS sponsored open source software organization created to unify the packages for scientific machine learning. This includes the development of modular scientific simulation support software, such as differential equation solvers, along with the methodologies for inverse problems and automated model discovery. By providing a diverse set of tools with a common interface, we provide a modular, easily-extendable, and highly performant ecosystem for handling a wide variety of scientific simulations.
High Performance and Feature-Filled Differential Equation Solving. The library DifferentialEquations.jl is a library for solving ordinary differential equations (ODEs), stochastic differential equations (SDEs), delay differential equations (DDEs), differential-algebraic equations (DAEs), and hybrid differential equations which include multi-scale models and mixtures with agent-based simulations. The templated implementation allows arbitrary array and number types to be compatible, giving compatibility with arbitrary precision floating point numbers, GPU-based computations, unit-checked arithmetic, and other features. DifferentialEquations.jl is designed for both high performance on large-scale and small-scale problems, and routinely benchmarks at the top of the pack.
Physics-Informed Model Discovery and Learning. SciML contains a litany of modules for automating the process of model discovery and fitting. Tools like DiffEqParamEstim.jl and DiffEqBayes.jl provide classical maximum likelihood and Bayesian estimation for differential equation based models, while DiffEqFlux.jl enables the training of embedded neural networks inside of differential equations (neural differential equations or universal differential equations) for discovering unknown dynamical equations, DataDrivenDiffEq.jl estimates Koopman operators (DMD) and utilizes methods like SInDy to turn timeseries data into LaTeX for driving differential equations, and ReservoirComputing.jl for Echo State Networks that learn to predict the dynamics of chaotic systems.