DifferentialEquations

Multi-language suite for high-performance solvers of differential equations and scientific machine learning (SciML) components. Ordinary differential equations (ODEs), stochastic differential equations (SDEs), delay differential equations (DDEs), differential-algebraic equations (DAEs), and more in Julia.

https://github.com/sciml/differentialequations.jl

Science Score: 51.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    2 of 33 committers (6.1%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.1%) to scientific vocabulary

Keywords

dae dde delay-differential-equations differential-algebraic-equations differential-equations differentialequations dynamical-systems julia neural-differential-equations numerical ode python r scientific scientific-machine-learning sciml sde spde stochastic-differential-equations stochastic-processes

Keywords from Contributors

matrix-exponential pdes neural-sde wiener-process noise-processes brownian-motion julialang steady-state developer-tools graphics
Last synced: 6 months ago · JSON representation ·

Repository

Multi-language suite for high-performance solvers of differential equations and scientific machine learning (SciML) components. Ordinary differential equations (ODEs), stochastic differential equations (SDEs), delay differential equations (DDEs), differential-algebraic equations (DAEs), and more in Julia.

Basic Info
Statistics
  • Stars: 2,994
  • Watchers: 55
  • Forks: 241
  • Open Issues: 169
  • Releases: 75
Topics
dae dde delay-differential-equations differential-algebraic-equations differential-equations differentialequations dynamical-systems julia neural-differential-equations numerical ode python r scientific scientific-machine-learning sciml sde spde stochastic-differential-equations stochastic-processes
Created almost 10 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License Citation

README.md

DifferentialEquations.jl

Join the chat at https://julialang.zulipchat.com #sciml-bridged Global Docs

codecov Build Status

ColPrac: Contributor's Guide on Collaborative Practices for Community Packages SciML Code Style

DOI

This is a suite for numerically solving differential equations written in Julia and available for use in Julia, Python, and R. 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:

  • Discrete equations (function maps, discrete stochastic (Gillespie/Markov) simulations)
  • Ordinary differential equations (ODEs)
  • Split and Partitioned ODEs (Symplectic integrators, IMEX Methods)
  • Stochastic ordinary differential equations (SODEs or SDEs)
  • Stochastic differential-algebraic equations (SDAEs)
  • Random differential equations (RODEs or RDEs)
  • Differential algebraic equations (DAEs)
  • Delay differential equations (DDEs)
  • Neutral, retarded, and algebraic delay differential equations (NDDEs, RDDEs, and DDAEs)
  • Stochastic delay differential equations (SDDEs)
  • Experimental support for stochastic neutral, retarded, and algebraic delay differential equations (SNDDEs, SRDDEs, and SDDAEs)
  • Mixed discrete and continuous equations (Hybrid Equations, Jump Diffusions)
  • (Stochastic) partial differential equations ((S)PDEs) (with both finite difference and finite element methods)

The well-optimized DifferentialEquations solvers benchmark as some of the fastest implementations of classic algorithms. It also includes algorithms from recent research which routinely outperform the "standard" C/Fortran methods, and algorithms optimized for high-precision and HPC applications. Simultaneously, it wraps the classic C/Fortran methods, making it easy to switch over to them whenever necessary. Solving differential equations with different methods from different languages and packages can be done by changing one line of code, allowing for easy benchmarking to ensure you are using the fastest method possible.

DifferentialEquations.jl integrates with the Julia package sphere with:

  • GPU acceleration through CUDA.jl and DiffEqGPU.jl
  • Automated sparsity detection with Symbolics.jl
  • Automatic Jacobian coloring with SparseDiffTools.jl, allowing for fast solutions to problems with sparse or structured (Tridiagonal, Banded, BlockBanded, etc.) Jacobians
  • Allowing the specification of linear solvers for maximal efficiency with LinearSolve.jl
  • Progress meter integration with the Visual Studio Code IDE for estimated time to solution
  • Automatic plotting of time series and phase plots
  • Built-in interpolations
  • Wraps for common C/Fortran methods like Sundials and Hairer's radau
  • Arbitrary precision with BigFloats and Arbfloats
  • Arbitrary array types, allowing the definition of differential equations on matrices and distributed arrays
  • Unit checked arithmetic with Unitful

Additionally, DifferentialEquations.jl comes with built-in analysis features, including:

This gives a powerful mixture of speed and productivity features to help you solve and analyze your differential equations faster.

For information on using the package, see the stable documentation. Use the in-development documentation for the version of the documentation which contains the unreleased features.

All of the algorithms are thoroughly tested to ensure accuracy via convergence tests. The algorithms are continuously tested to show correctness. IJulia tutorial notebooks can be found at DiffEqTutorials.jl. Benchmarks can be found at DiffEqBenchmarks.jl. 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 chat in the Gitter channel. For bug reports, feature requests, etc., please submit an issue. If you're interested in contributing, please see the Developer Documentation.

Supporting and Citing

The software in this ecosystem was developed as part of academic research. If you would like to help support it, please star the repository, as such metrics may help us secure funding in the future. If you use SciML software as part of your research, teaching, or other activities, we would be grateful if you could cite our work. Please see our citation page for guidelines.


Video Tutorial

Video Tutorial

Video Introduction

Video Introduction to DifferentialEquations.jl

Comparison with MATLAB, R, Julia, Python, C, Mathematica, Maple, and Fortran

Comparison Of Differential Equation Solver Software

See the corresponding blog post

Example Images

Owner

  • Name: SciML Open Source Scientific Machine Learning
  • Login: SciML
  • Kind: organization
  • Email: contact@chrisrackauckas.com

Open source software for scientific machine learning

Citation (CITATION.bib)

@article{DifferentialEquations.jl-2017,
 author = {Rackauckas, Christopher and Nie, Qing},
 doi = {10.5334/jors.151},
 journal = {The Journal of Open Research Software},
 keywords = {Applied Mathematics},
 note = {Exported from https://app.dimensions.ai on 2019/05/05},
 number = {1},
 pages = {},
 title = {DifferentialEquations.jl – A Performant and Feature-Rich Ecosystem for Solving Differential Equations in Julia},
 url = {https://app.dimensions.ai/details/publication/pub.1085583166 and http://openresearchsoftware.metajnl.com/articles/10.5334/jors.151/galley/245/download/},
 volume = {5},
 year = {2017}
}

GitHub Events

Total
  • Create event: 11
  • Release event: 3
  • Issues event: 50
  • Watch event: 149
  • Delete event: 5
  • Issue comment event: 179
  • Push event: 12
  • Pull request event: 12
  • Fork event: 19
Last Year
  • Create event: 11
  • Release event: 3
  • Issues event: 50
  • Watch event: 149
  • Delete event: 5
  • Issue comment event: 179
  • Push event: 12
  • Pull request event: 12
  • Fork event: 19

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 1,214
  • Total Committers: 33
  • Avg Commits per committer: 36.788
  • Development Distribution Score (DDS): 0.061
Past Year
  • Commits: 20
  • Committers: 7
  • Avg Commits per committer: 2.857
  • Development Distribution Score (DDS): 0.75
Top Committers
Name Email Commits
Christopher Rackauckas Me@C****m 1,140
CompatHelper Julia c****y@j****g 9
dependabot[bot] 4****] 7
Anshul Singhvi a****7@s****u 6
Anant Thazhemadam a****m@g****m 6
github-actions[bot] 4****] 5
Yingbo Ma m****5@g****m 5
Oscar Smith o****h@g****m 3
Hossein Pourbozorg p****g@g****m 3
Chris Rackauckas c****c@p****n 2
Chris de Graaf me@c****v 2
David Widmann d****n 2
Lilith Orion Hafner 6****r 2
Michael Hatherly m****y@g****m 2
ScottPJones s****s@a****u 2
Pepijn de Vos p****s@j****m 1
Arno Strouwen a****n@t****e 1
Colin Caine c****e@g****m 1
Elliot Saba s****t@g****m 1
Hendrik Ranocha m****l@r****e 1
Julia TagBot 5****t 1
Kvaz1r a****m@y****u 1
Max G j****r 1
Qingyu Qu 5****Y 1
Sam Isaacson i****s 1
Sheehan Olver s****r@m****m 1
The Gitter Badger b****r@g****m 1
Thomas Vetter 8****t 1
c123w c****w 1
dextorious d****s@g****m 1
and 3 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 194
  • Total pull requests: 51
  • Average time to close issues: 6 months
  • Average time to close pull requests: 12 days
  • Total issue authors: 159
  • Total pull request authors: 13
  • Average comments per issue: 4.89
  • Average comments per pull request: 0.88
  • Merged pull requests: 39
  • Bot issues: 0
  • Bot pull requests: 21
Past Year
  • Issues: 39
  • Pull requests: 12
  • Average time to close issues: 10 days
  • Average time to close pull requests: about 8 hours
  • Issue authors: 33
  • Pull request authors: 5
  • Average comments per issue: 3.41
  • Average comments per pull request: 0.33
  • Merged pull requests: 9
  • Bot issues: 0
  • Bot pull requests: 5
Top Authors
Issue Authors
  • ChrisRackauckas (13)
  • MartinOtter (4)
  • dtxl (3)
  • prbzrg (3)
  • liushang0322 (2)
  • evan-wehi (2)
  • ytdHuang (2)
  • jonaswickman (2)
  • LilithHafner (2)
  • meson800 (2)
  • TrumeAAA (2)
  • kar1504 (2)
  • fgittins (2)
  • yuyuexi (2)
  • MasonProtter (2)
Pull Request Authors
  • github-actions[bot] (17)
  • ChrisRackauckas (14)
  • dependabot[bot] (10)
  • thazhemadam (7)
  • devmotion (3)
  • thomvet (2)
  • oscardssmith (2)
  • rikhuijzer (2)
  • isaacsas (1)
  • prbzrg (1)
  • ranocha (1)
  • ArnoStrouwen (1)
  • ErikQQY (1)
Top Labels
Issue Labels
bug (49) question (5) easy (1) hacktoberfest (1)
Pull Request Labels
dependencies (10) github_actions (1)

Packages

  • Total packages: 3
  • Total downloads:
    • julia 2,785 total
  • Total dependent packages: 99
    (may contain duplicates)
  • Total dependent repositories: 28
    (may contain duplicates)
  • Total versions: 239
juliahub.com: DifferentialEquations

Multi-language suite for high-performance solvers of differential equations and scientific machine learning (SciML) components. Ordinary differential equations (ODEs), stochastic differential equations (SDEs), delay differential equations (DDEs), differential-algebraic equations (DAEs), and more in Julia.

  • Versions: 49
  • Dependent Packages: 99
  • Dependent Repositories: 28
  • Downloads: 2,785 Total
Rankings
Stargazers count: 0.0%
Forks count: 0.2%
Average: 0.6%
Dependent packages count: 0.8%
Dependent repos count: 1.4%
Last synced: 6 months ago
proxy.golang.org: github.com/sciml/differentialequations.jl
  • Versions: 95
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 1.6%
Average: 4.1%
Dependent packages count: 6.5%
Last synced: 6 months ago
proxy.golang.org: github.com/SciML/DifferentialEquations.jl
  • Versions: 95
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 7.0%
Average: 8.2%
Dependent repos count: 9.3%
Last synced: 6 months ago