ANN: new version of BifurcationKit.jl

Dear all,

I am glad to report a new version of BifurcationKit.jl. Compared to the previous one, emphasis was put on the computation of codimension 2 bifurcation points.

  • the continuation of Fold/Hopf points have been greatly improved. It is now thoroughly tested and has been used in a wide variety of cases (sparse matrices, iterative solvers, GPU,…)
  • we have now event detection. It allows to find the roots of a user defined function on a branch of equilibria (or other). It is a bit akin to Callbacks in DifferentialEquations.jl. These roots are located with a bisection algorithm. For example, in this figure

we asked to detect bifurcation points but also the zeros of the function (x,p1) -> (p1-1,p1-2,p1-2.5). This was quite technical to write and it took me a while to find the API. Long term use will tell if the semantic is good…

  • based on the above functionality, it is possible to detect codimension 2 bifurcations such as Bogdanov-Takens, Bautin and Cusp. BifurcationKit.jl is by now the only software to provide this functionality in large dimension, working on GPU, etc. We give an example for ODE and one for PDE:

Note that in the paper for which we reproduce the bifurcation, the authors were unable to detect the Bogdanov-Takens bifurcation (labelled BT in the graph).

Finally, I am trying to put together an example with Oceananigans.jl, I will keep you posted. It would be exciting to have tools to decipher the dynamics of fluid on GPUs…

I hope you will find it useful,