# Overview of capabilities

## Main features

- Newton-Krylov solver with generic linear / eigen
*preconditioned*solver. Idem for the arc-length continuation. - Newton-Krylov solver with nonlinear deflation and preconditioner. It can be used for branch switching for example. It is used for deflated continuation.
- Continuation written as an iterator
- Monitoring user functions along curves computed by continuation, see events
- Continuation methods: PALC, Moore Penrose, Multiple, Polynomial, Deflated continuation, ANM, ...
- Bifurcation points located with bisection

## Capabilities related to equilibria

- Detection of Branch, Fold, Hopf bifurcation points of stationary solutions and computation of their normal form.
- Automatic branch switching at branch points (
**whatever the dimension of the kernel**) to equilibria **Automatic computation of bifurcation diagrams of equilibria**- Fold / Hopf continuation based on Minimally Augmented formulation, with Matrix Free / Sparse / Dense Jacobian.
- Detection of all codim 2 bifurcations of equilibria and computation of the normal forms of Bogdanov-Takens, Bautin and Cusp
- Branching from Bogdanov-Takens / Zero-Hopf / Hopf-Hopf points to Fold / Hopf curve

**Note that you can combine most solvers, like use Deflation for Periodic orbit computation or Fold of periodic orbits family.**

Custom state means, we can use something else than

`AbstractArray`

, for example your own`struct`

.

Features | Matrix Free | Custom state | Tutorial | GPU |
---|---|---|---|---|

(Deflated) Krylov-Newton | Yes | Yes | link | Yes |

Continuation PALC (Natural, Secant, Tangent, Polynomial) | Yes | Yes | All | Yes |

Deflated Continuation | Yes | Yes | link | Yes |

Bifurcation / Fold / Hopf point detection | Yes | Yes | All / All / link | Yes |

Fold Point continuation | Yes | Yes | link, link, ODE | Yes |

Hopf Point continuation | Yes | `AbstractArray` | ODE | |

Branch point / Fold / Hopf normal form | Yes | Yes | Yes | |

Branch switching at Branch points | Yes | `AbstractArray` | link | Yes |

Automatic bifurcation diagram computation of equilibria | Yes | `AbstractArray` | link | |

Bogdanov-Takens / Bautin / Cusp / Zero-Hopf / Hopf-Hopf point detection | Yes | Yes | ODE | |

Bogdanov-Takens / Bautin / Cusp normal forms | Yes | `AbstractArray` | ODE | Yes |

Branching from Bogdanov-Takens / Zero-Hopf / Hopf-Hopf to Fold / Hopf curve | Yes | `AbstractArray` | ODE |

## Capabilities related to Periodic orbits

- Periodic orbit computation and continuation using
**parallel**(Standard or Poincaré) Shooting, Finite Differences or Orthogonal Collocation. - Automatic branch switching at simple Hopf points to periodic orbits
- Detection of Branch, Fold, Neimark-Sacker, Period Doubling bifurcation points of periodic orbits.
- Continuation of Fold of periodic orbits

Legend for the table: Standard shooting (SS), Poincaré shooting (PS), Orthogonal collocation (OC), trapezoid (T).

Features | Method | Matrix Free | Custom state | Tutorial | GPU |
---|---|---|---|---|---|

Branch switching at Hopf points | SS/PS/OC/T | See each | link | ||

Newton / continuation | T | Yes | `AbstractVector` | link, link | Yes |

Newton / continuation | OC | `AbstractVector` | link | ||

Newton / continuation | SS | Yes | `AbstractArray` | link | Yes |

Newton / continuation | PS | Yes | `AbstractArray` | link | Yes |

Fold, Neimark-Sacker, Period doubling detection | SS/PS/OC/T | See each | `AbstractVector` | link | |

Branch switching at Branch point | SS/PS/OC/T | See each | link | ||

Branch switching at PD point | SS/PS/OC/T | See each | link | ||

Continuation of Fold points | SS/PS/OC/T | See each | `AbstractVector` | link | Yes |

Continuation of Period-doubling points | SS/OC | `AbstractVector` | link | ||

Continuation of Neimark-Sacker points | SS/OC | `AbstractVector` | link | ||

detection of codim 2 bifurcations of periodic orbits | SS/OC | `AbstractVector` | link | ||

Branch switching at Bautin point to curve of Fold of periodic orbits | SS/OC | `AbstractVector` | |||

Branch switching at ZH/HH point to curve of NS of periodic orbits | SS/OC | `AbstractVector` |

## Capabilities related to Homoclinic orbits

This is available through the plugin HclinicBifurcationKit.jl. Please see the specific docs for more information.

- compute Homoclinic to Hyperbolic Saddle Orbits (HomHS) using Orthogonal collocation or Standard shooting
- compute bifurcation of HomHS
- start HomHS from a direct simulation
- automatic branch switching to HomHS from Bogdanov-Takes bifurcation point