Steady State Solvers
solve(prob::SteadyStateProblem,alg;kwargs)
Solves for the steady states in the problem defined by prob
using the algorithm alg
. If no algorithm is given, a default algorithm will be chosen.
For a more complete documentation on nonlinear solvers for steady state problems, see NonlinearSolve.jl |
Recommended Methods
DynamicSS
is a good choice if you think you may have multiple steady states or a bad initial guess. SSRootfind
can be faster if you have a good initial guess. For DynamicSS
, in many cases an adaptive stiff solver, like a Rosenbrock or BDF method (Rodas5
or QNDF
), is a good way to allow for very large time steps as the steady state approaches.
Note that if you use CVODE_BDF
you may need to give a starting dt
via dt=....
.
Full List of Methods
SteadyStateDiffEq.jl
-
SSRootfind
: Uses a rootfinding algorithm to find a steady state. Defaults to using NLsolve.jl. A different algorithm can be specified via thenlsolve
keyword argument. (This method is deprecated: use NonlinearSolve.jl instead). -
DynamicSS
: Uses an ODE solver to find the steady state. Automatically terminates when close to the steady state.DynamicSS(alg;abstol=1e-8,reltol=1e-6,tspan=Inf)
requires that an ODE algorithm is given as the first argument. The absolute and relative tolerances specify the termination conditions on the derivative’s closeness to zero. This internally uses theTerminateSteadyState
callback from the Callback Library. The simulated time for which the given ODE is solved can be limited bytspan
. Iftspan
is a number, it is equivalent to passing(zero(tspan), tspan)
.
Example usage:
sol = solve(prob, SSRootfind())
sol = solve(prob, DynamicSS(Tsit5()))
using Sundials
sol = solve(prob, DynamicSS(CVODE_BDF()), dt = 1.0)