Bifurcation Problem

Vector field

The structure BifFunction holds the vector field. If you just pass a function, everything (jacobian, second derivative, ...) will be evaluated using automatic differentiation.

Bifurcation Problem

The structure BifurcationProblem is the basic holder for a bifurcation problem which holds

  • the vector field
  • an initial guess
  • a set of parameters
  • a parameter axis

as well as user defined functions for

  • plotting
  • recording a indicators about the solution when this oe is too large to save at every step

Problem modification

In case you want to modify an existing problem, you should use the following method

BifurcationKit.reMakeMethod
reMake(prob; u0, params, lens, recordFromSolution, plotSolution, J, d2F, d3F)

This function allows to change the fields of a problem ::AbstractBifurcationProblem. For example, you can change the initial condition by doing

reMake(prob; u0 = new_u0)

Example

using BifurcationKit, Setfield
F(x,p) = @. p.a + x^2
# parameters
par = (a = 0., b = 2)
prob = BifurcationProblem(F, zeros(3), par, (@lens _.a))
┌─ Bifurcation Problem with uType Vector{Float64}
├─ inplace:  false
├─ Symmetric: false
└─ Parameter: a