DifferentialEquations.jl – A Performant and Feature-Rich Ecosystem for Solving Differential Equations in Julia

DifferentialEquations.jl is a package for solving differential equations in Julia. It covers discrete equations (function maps, discrete stochastic (Gillespie/Markov) simulations), ordinary differential equations, stochastic differential equations, algebraic differential equations, delay differentia...

Full description

Bibliographic Details
Main Authors: Christopher Rackauckas, Qing Nie
Format: Article
Language:English
Published: Ubiquity Press 2017-05-01
Series:Journal of Open Research Software
Subjects:
Online Access:http://openresearchsoftware.metajnl.com/articles/151
_version_ 1819230593710292992
author Christopher Rackauckas
Qing Nie
author_facet Christopher Rackauckas
Qing Nie
author_sort Christopher Rackauckas
collection DOAJ
description DifferentialEquations.jl is a package for solving differential equations in Julia. It covers discrete equations (function maps, discrete stochastic (Gillespie/Markov) simulations), ordinary differential equations, stochastic differential equations, algebraic differential equations, delay differential equations, hybrid differential equations, jump diffusions, and (stochastic) partial differential equations. Through extensive use of multiple dispatch, metaprogramming, plot recipes, foreign function interfaces (FFI), and call-overloading, DifferentialEquations.jl offers a unified user interface to solve and analyze various forms of differential equations while not sacrificing features or performance. Many modern features are integrated into the solvers, such as allowing arbitrary user-defined number systems for high-precision and arithmetic with physical units, built-in multithreading and parallelism, and symbolic calculation of Jacobians. Integrated into the package is an algorithm testing and benchmarking suite to both ensure accuracy and serve as an easy way for researchers to develop and distribute their own methods. Together, these features build a highly extendable suite which is feature-rich and highly performant. Funding statement: This work was partially supported by NIH grants P50GM76516 and R01GM107264 and NSF grants DMS1562176 and DMS1161621. This material is based upon work supported by the National Science Foundation Graduate Research Fellowship under Grant No. DGE-1321846, the National Academies of Science, Engineering, and Medicine via the Ford Foundation, and the National Institutes of Health Award T32 EB009418. Its contents are solely the responsibility of the authors and do not necessarily represent the official views of the NIH.
first_indexed 2024-12-23T11:31:32Z
format Article
id doaj.art-2def322f009e4228822143064fda230b
institution Directory Open Access Journal
issn 2049-9647
language English
last_indexed 2024-12-23T11:31:32Z
publishDate 2017-05-01
publisher Ubiquity Press
record_format Article
series Journal of Open Research Software
spelling doaj.art-2def322f009e4228822143064fda230b2022-12-21T17:48:48ZengUbiquity PressJournal of Open Research Software2049-96472017-05-015110.5334/jors.151122DifferentialEquations.jl – A Performant and Feature-Rich Ecosystem for Solving Differential Equations in JuliaChristopher Rackauckas0Qing Nie1Department of Mathematics, University of California-Irvine, Irvine, CA, 92697Department of Mathematics, University of California-Irvine, Irvine, CA, 92697DifferentialEquations.jl is a package for solving differential equations in Julia. It covers discrete equations (function maps, discrete stochastic (Gillespie/Markov) simulations), ordinary differential equations, stochastic differential equations, algebraic differential equations, delay differential equations, hybrid differential equations, jump diffusions, and (stochastic) partial differential equations. Through extensive use of multiple dispatch, metaprogramming, plot recipes, foreign function interfaces (FFI), and call-overloading, DifferentialEquations.jl offers a unified user interface to solve and analyze various forms of differential equations while not sacrificing features or performance. Many modern features are integrated into the solvers, such as allowing arbitrary user-defined number systems for high-precision and arithmetic with physical units, built-in multithreading and parallelism, and symbolic calculation of Jacobians. Integrated into the package is an algorithm testing and benchmarking suite to both ensure accuracy and serve as an easy way for researchers to develop and distribute their own methods. Together, these features build a highly extendable suite which is feature-rich and highly performant. Funding statement: This work was partially supported by NIH grants P50GM76516 and R01GM107264 and NSF grants DMS1562176 and DMS1161621. This material is based upon work supported by the National Science Foundation Graduate Research Fellowship under Grant No. DGE-1321846, the National Academies of Science, Engineering, and Medicine via the Ford Foundation, and the National Institutes of Health Award T32 EB009418. Its contents are solely the responsibility of the authors and do not necessarily represent the official views of the NIH.http://openresearchsoftware.metajnl.com/articles/151Juliaordinary differential equationsstochastic differential equationspartial differential equationsmultiple dispatchmetaprogramminghigh-precisionmultithreading
spellingShingle Christopher Rackauckas
Qing Nie
DifferentialEquations.jl – A Performant and Feature-Rich Ecosystem for Solving Differential Equations in Julia
Journal of Open Research Software
Julia
ordinary differential equations
stochastic differential equations
partial differential equations
multiple dispatch
metaprogramming
high-precision
multithreading
title DifferentialEquations.jl – A Performant and Feature-Rich Ecosystem for Solving Differential Equations in Julia
title_full DifferentialEquations.jl – A Performant and Feature-Rich Ecosystem for Solving Differential Equations in Julia
title_fullStr DifferentialEquations.jl – A Performant and Feature-Rich Ecosystem for Solving Differential Equations in Julia
title_full_unstemmed DifferentialEquations.jl – A Performant and Feature-Rich Ecosystem for Solving Differential Equations in Julia
title_short DifferentialEquations.jl – A Performant and Feature-Rich Ecosystem for Solving Differential Equations in Julia
title_sort differentialequations jl a performant and feature rich ecosystem for solving differential equations in julia
topic Julia
ordinary differential equations
stochastic differential equations
partial differential equations
multiple dispatch
metaprogramming
high-precision
multithreading
url http://openresearchsoftware.metajnl.com/articles/151
work_keys_str_mv AT christopherrackauckas differentialequationsjlaperformantandfeaturerichecosystemforsolvingdifferentialequationsinjulia
AT qingnie differentialequationsjlaperformantandfeaturerichecosystemforsolvingdifferentialequationsinjulia