Detection of bifurcation points
The bifurcations are detected during a call to br = continuation(prob, alg, contParams::ContinuationPar; kwargs...) by turning on the following flags:
contParams.detect_bifurcation = 2(for eigenvalue based bifurcations)contParams.detect_event = 2(for other bifurcations, e.g. inclinations)
Precise detection of bifurcation points using Bisection
Note that the bifurcation points detected when detect_bifurcation = 2 can be a rather crude localization of the true bifurcation points. Indeed, we only signal that, in between two continuation steps which can be large, one (or several) bifurcation has been detected. Hence, we only have a rough idea of where the bifurcation is located, unless your dsmax is very small... This can be improved as follows.
If you choose detect_bifurcation = 3, a bisection algorithm is used to locate the bifurcation points more precisely. It means that we recursively track down the change in stability. Some options in ContinuationPar control this behavior:
n_inversion: number of sign inversions in the bisection algorithmmax_bisection_stepsmaximum number of bisection stepstol_bisection_eigenvaluetolerance on the real part of the eigenvalues to detect bifurcation points in the bisection steps
During the bisection, the eigensolvers are called like eil(J, nev; bisection = true) in order to be able to adapt the solver precision.
List of detected bifurcation points
When continuing a homoclinic orbit, you can detect the following codimension-two bifurcation points by using the option detect_codim2_bifurcation in the method continuation. Under the hood, the detection of these bifurcations is done by using Event detection as explained in Event Handling.
We refer to [DeWitte] for a description of the bifurcations.
| Type of bifurcation | Label |
|---|---|
| Limit cycle | LC |
| Homoclinic to Hyperbolic Saddle | HHS |
| Homoclinic to Saddle-Node | HSN |
| Neutral saddle | NSS |
| Neutral saddle-focus | NSF |
| Neutral Bi-Focus | NFF |
| Shilnikov-Hopf | SH |
| Double Real Stable leading eigenvalue | DRS |
| Double Real Unstable leading eigenvalue | DRU |
| Neutrally-Divergent saddle-focus (Stable) | NDS |
| Neutrally-Divergent saddle-focus (Unstable) | NDU |
| Three Leading eigenvalues (Stable) | TLS |
| Three Leading eigenvalues (Unstable) | TLU |
| Orbit-Flip with respect to the Stable manifold | OFS |
| Orbit-Flip with respect to the Unstable manifold | OFU |
| Non-Central Homoclinic to saddle-node | NCH |
Inclination-Flip with respect to the Stable / Unstable manifold is not yet detected.
References
- DeWitte
De Witte, Virginie, Willy Govaerts, Yuri A. Kuznetsov, and Mark Friedman. “Interactive Initialization and Continuation of Homoclinic and Heteroclinic Orbits in MATLAB.” ACM Transactions on Mathematical Software 38, no. 3 (April 2012): 1–34. https://doi.org/10.1145/2168773.2168776.