DDE Solvers

DDE Solvers

solve(prob::AbstractDDEProblem,alg;kwargs)

Solves the DDE defined by prob using the algorithm alg. If no algorithm is given, a default algorithm will be chosen.

Recommended Methods

The recommended method for standard constant lag DDE problems are the MethodOfSteps algorithms. These are constructed from an OrdinaryDiffEq.jl algorithm as follows:

MethodOfSteps(alg;constrained=false,
             picardabstol = nothing,
             picardreltol = nothing,
             picardnorm   = nothing,
             max_picard_iters = 10)

where alg is an OrdinaryDiffEq.jl algorithm. Most algorithms will work, though a notable exception are algorithms which use a lazy interpolant (the Verner methods).

The standard choice is MethodOfSteps(Tsit5()). This is a highly efficient FSAL 5th order algorithm which should handle most problems. For fast solving at where non-strict error control is needed, choosing BS3() can do well (this is similar to the MATLAB dde23). For algorithms where strict error control is needed, it is recommended that one uses DP8().

If the method is having trouble, one may want to adjust the Picard parameters. Decreasing the Picard tolerances and increasing the Picard iterations can help ensure that the steps are correct. If the problem still is not correctly converging, one should lower dtmax. In the worst case scenarios, one may need to set constrained=true which will constrain the method in a manner that forces more stability at the cost of smaller timesteps.

There is currently no recommended algorithm for state-dependent delay problems. An algorithm is currently in the works.