DelayDiffEq.jl

DelayDiffEq.jl is the native Julia package for solving delay differential equations (DDEs) within the SciML ecosystem. It provides methods for constant and state-dependent delays using the method of steps.

Installation

DelayDiffEq.jl is included with DifferentialEquations.jl. To use it standalone:

using Pkg
Pkg.add("DelayDiffEq")
import DelayDiffEq

DDE Solver API

DelayDiffEq.MethodOfStepsType
MethodOfSteps(alg; constrained = false, fpsolve = NLFunctional())

Construct an algorithm that solves delay differential equations by the method of steps, where alg is an ODE algorithm from OrdinaryDiffEq.jl upon which the calculation of steps is based.

If the algorithm is constrained only steps of size at most the minimal delay will be taken. If it is unconstrained, fixed-point iteration fpsolve is applied for step sizes that exceed the minimal delay.

Citations:

General Approach

Zivari-Piran, Hossein, and Wayne H. Enright. "An efficient unified approach for the numerical solution of delay differential equations." Numerical Algorithms 53.2-3 (2010): 397-417.

State-Dependent Delays

S. P. Corwin, D. Sarafyan and S. Thompson in "DKLAG6: a code based on continuously embedded sixth-order Runge-Kutta methods for the solution of state-dependent functional differential equations", Applied Numerical Mathematics, 1997.