# Tutorials

The tutorials are rated by the following scale of difficulty

- 🟢 basic knowledge of (numerical) bifurcation theory (following equilibria / periodic orbits)
- 🟡 advanced knowledge of (numerical) bifurcation theory (codim 2 bifurcations of equilibria)
- 🟠 high level of knowledge of (numerical) bifurcation theory (codim 2 bifurcations of periodic orbits, tweaking the methods)
- 🟤 very advanced tutorial, research level

There are three levels of automatization of the computation in these tutorials:

- fully
**automatic bifurcation diagram**(**aBD**) computation (only for equilibria): one uses`bifurcationdiagram`

and let it compute the diagram fully automatically. Another possibility is to use**deflated continuation**. - semi-automatic bifurcation diagram computation: one uses
**automatic branch switching**(**aBS**) to compute branches at specified bifurcation points - manual bifurcation diagram computation: one does not use automatic branch switching. This has only educational purposes or for complex problems where aBS fails.

## ODE examples

These examples are specific to ODEs.

### Computation of equilibria

### Codimension 2 bifurcations of equilibria

### Periodic orbits

We provide some examples focused on the computation of periodic orbits. Here is one where we present the different ways to compute periodic orbits.

Here is one for aBS from **period-doubling** bifurcations of periodic orbits

In the next tutorial, we show how to refine a periodic orbit guess obtained from numerical simulation. We also show how to perform **continuation of PD/NS** points using Shooting or Collocation.

In the next tutorial, we showcase the detection of **Chenciner** bifurcations. This is a relatively advanced tutorial, so we don't give much explanations. The reader should get first familiar with the above simpler examples.

In the next tutorial, we showcase aBS from Bautin/HH to curve of Fold/NS of periodic orbits.

### Homoclinic orbits

Based on the package HclinicBifurcationKit.jl and its docs.

## DAE examples

## DDE examples

See the tutorials of DDEBifurcationKit.jl.

## Examples based on ModelingToolkit

`ModelingToolkit`

provides a tailored interface to `BifurcationKit`

and the user is encouraged to have a look at its specific documentation.

We also provide some alternative example(s):

## Examples based on Catalyst

`Catalyst`

provides a tailored interface to `BifurcationKit`

and the user is encouraged to have a look at its specific documentation

## PDEs: bifurcations of equilibria

- 🟡 Temperature model (codim 2)
- 🟡 Temperature model with
`ApproxFun`

, no`AbstractArray`

- 🟡 2d Swift-Hohenberg equation: snaking, Finite Differences
- 🟤 2d generalized Bratu–Gelfand problem
- 🟠 2d Swift-Hohenberg equation (non-local) on the GPU
- 🟠 3d Swift-Hohenberg equation, Finite differences

## PDEs: automatic bifurcation diagram

- 🟡 1d Swift-Hohenberg equation (Automatic)
- 🟡 Deflated Continuation in the Carrier Problem
- 🟢 1d Kuramoto–Sivashinsky Equation
- 🟡 Automatic diagram of 2d Bratu–Gelfand problem

## PDEs: bifurcations of periodic orbits

- 🟡 1d Brusselator (automatic)
- 🟠 1d Brusselator
- 🟠 Brusselator 1d with periodic BC using
`FourierFlows.jl`

- 🟡 Period doubling in the Barrio-Varea-Aragon-Maini model
- References
- 🟠 2d Ginzburg-Landau equation (finite differences, codim 2, Hopf aBS)
- 🟢 2d Ginzburg-Landau equation (Shooting)
- 🟠 1d Langmuir–Blodgett transfer model