ANN: new version of package BifurcationKit.jl v0.1.11

Dear all,

I am glad to report a new version of BifurcationKit.jl (actually two in a row). Compared to the previous one, axed on periodic orbits, emphasis was put on codim 2 bifurcations, continuation, and their normal forms. More precisely,

  • I re-wrote the interface to shooting problems to make the use of time steppers other than DifferentialEquations’ones simpler
  • I re-wrote the interface of the predictor step to allow the easier development of new class of predictors. As a by-product, you can now change the underlying dot product in pseudo-arclength continuation. This is especially useful in FEM. This is shown in action in the new tutorial based on ApproxFun.jl
  • I added a simple tutorial based on ModelingToolkit

For codim 2:

  • I added the detection of all codim 2 bifurcations which works in any dimension, sparse, dense, matrix-free etc. We are not many in this club :smiley:
  • I added the computation of the Bogdanov-Takens normal form, the cusp one and the bautin one.
  • You can branch from these bifurcations to Hopf / Fold curves
  • This is shown at work in an ODE tutorial, this one exhibits all codim 2 bifurcations so it is a nice “benchmark”.
  • this is also shown for a 2d PDE tutorial which is the Ginzburg-Landau equation.
  • this is also shown for a 1d PDE Langmuir which is the Ginzburg-Landau equation.

I hope some of you will find it useful.

Feel free to suggest improvements, design choices,… Also, do not hesitate to open issues if the docs are not clear enough.



Thanks, we’ve found this package to be very useful in tracking solutions of the nonlinear equations governing steady-state lasers as you vary the laser “pump” power. Hopefully we’ll have a publication later this year citing it.


Oh nice!

I did not asked you: is it a PDE model?

Yes. The simplest version of the SALT (steady-state ab-initio laser theory) equations for scalar waves is something like

\left(\nabla^{2}+k^{2}\varepsilon_{c}(\vec{x})+\frac{\gamma_{\perp}}{k-k_{a}+i\gamma_{\perp}}\frac{D_{0}(\vec{x})p}{1+|\psi|^{2}}\right)\psi= 0

where you are solving for an unknown complex-valued function \psi(\vec{x}) and an unknown real frequency k > 0, as a function of the pump strength p > p_0 where p_0 is the “lasing threshold” at which the first solution appears (or potentially as a function of other system parameters).

1 Like

A nonlinear Eigen value problem? It looks like a fun project. I will read your paper when it’s out for sure.