Skip to content

Commit

Permalink
Merge pull request #325 from avik-pal/ap/doc
Browse files Browse the repository at this point in the history
Clarify unstable equilibrium for SteadyStateProblems
  • Loading branch information
ChrisRackauckas authored Dec 17, 2023
2 parents 1d2ef5c + 0e03d5a commit dc4f0f4
Showing 1 changed file with 14 additions and 7 deletions.
21 changes: 14 additions & 7 deletions docs/src/solvers/SteadyStateSolvers.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,34 @@
# [Steady State Solvers](@id ss_solvers)

`solve(prob::SteadyStateProblem,alg;kwargs)`
`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.

## Recommended Methods

Conversion to a NonlinearProblem is generally the fastest method. However, this will not
guarantee the preferred root, and thus if the preferred root is required, then it's
recommended that one uses `DynamicSS`. For `DynamicSS`, often 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.
guarantee the preferred root (the stable equilibrium), and thus if the preferred root is
required, then it's recommended that one uses `DynamicSS`. For `DynamicSS`, often 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

The SteadyStateDiffEq.jl methods on a `SteadyStateProblem` respect the time definition
in the nonlinear definition, i.e., `u' = f(u,t)` uses the correct values for `t` as the
in the nonlinear definition, i.e., `u' = f(u, t)` uses the correct values for `t` as the
solution evolves. A conversion of a `SteadyStateProblem` to a `NonlinearProblem`
replaces this with the nonlinear system `u' = f(u,∞)`, and thus the direct
replaces this with the nonlinear system `u' = f(u, ∞)`, and thus the direct
`SteadyStateProblem` approach can give different answers (i.e., the correct unique
fixed point) on ODEs with non-autonomous dynamics.

!!! note

If you have an unstable equilibrium and you want to solve for the unstable equilibrium,
then `DynamicSS` might converge to the equilibrium based on the initial condition.
However, Nonlinear Solvers don't suffer from this issue, and thus it's recommended to
use a nonlinear solver if you want to solve for the unstable equilibrium.

## Full List of Methods

### Conversion to NonlinearProblem
Expand Down

0 comments on commit dc4f0f4

Please sign in to comment.