swh:1:snp:96df3cd8f41a04650ca4e93b2610f839c02d2899
Raw File
Tip revision: 60df0a6859f42cad7170a8560c768ff239190d3a authored by Software Heritage on 19 March 2019, 08:28:07 UTC
hal: Deposit 241 in collection hal
Tip revision: 60df0a6
detectionBifurcation.md
# Detection of bifurcation points

Depending on the bifurcation type, detection is ensured during a call to `br, _ = continuation(...)` by turning on a flag.

## Eigensolver

The user must provide an eigensolver by setting `NewtonOptions.eigsolve` where `NewtonOptions` is located in the parameter `::ContinuationPar` passed to continuation. See `src/Newton.jl` for more information on the structure of the options passed to `newton` and `continuation`.

The eigensolver is highly problem dependent and this is why the user should implement / parametrize its own eigensolver through the abstract type `EigenSolver` or select one among the provided like `Default_eig(), eig_IterativeSolvers(), eig_KrylovKit`. See `src/EigSolver.jl`.

## Fold bifurcation
The detection of **Fold** point is done by monitoring  the monotonicity of the parameter.

The detection is triggered by setting `detect_fold = true` in the parameter `::ContinuationPar` passed to continuation. When a **Fold** is detected, a flag is added to `br.bifpoint` allowing for later refinement.

## Generic bifurcation

By this we mean a change in the dimension of the Jacobian kernel. The detection of Branch point is done by analysis of the spectrum of the Jacobian.

The detection is triggered by setting `detect_bifurcation = true` in the parameter `::ContinuationPar` passed to continuation. The user must also provide a hint of the number of eigenvalues to be computed `nev = 10` in the parameter `::ContinuationPar` passed to continuation. Note that `nev` is incremented whenever a bifurcation point is detected. When a **Branch point** is detected, a flag is added to `br.bifpoint` allowing for later refinement.

## Hopf bifurcation

The detection of Branch point is done by analysis of the spectrum of the Jacobian.

The detection is triggered by setting `detect_bifurcation = true` in the parameter `::ContinuationPar` passed to continuation. The user must also provide a hint of the number of eigenvalues to be computed `nev = 10` in the parameter `::ContinuationPar` passed to continuation. Note that `nev` is incremented whenever a bifurcation point is detected. When a **Hopf point** is detected, a flag is added to `br.bifpoint` allowing for later refinement.
back to top