I am glad to report a new version of BifurcationKit (BK). It has been a long time since I report progress on this library, this one is a massive one.
Before I start, I would like to highlight the fact that a github organisation has been created which contains several pluggins for BK, among which:
- DDEBifurcationKit.jl for the bifurcation analysis of Delay differential equations
- HclinicBifurcationKit.jl for the computation of Homoclinic orbits and their bifurcations.
The new version of BK has been focused on periodic orbits, especially for ODE. BK is now able to follow Fold, Period-Doubling and Neimark-Sacker bifurcations of periodic orbits with 2 parameters (see tutorial). It is also able to detect codimension 2 bifurcations along those curves, like the Chenciner bifurcation (see tutorial).
What’s more, it is able to branch from Zero-Hopf, Hopf-Hopf and Bautin to these curves as is shown in this tutorial. In order to achieve that, several normal form computations have been added (see this function for example), this was tedious, to say the least.
Of course, all this is tested against analytics and the code coverage is quite high.
Is it possible for Julia to sponsor beefier GH actions? My tests are 2 hours long on GH…
Finally, all these methods are available for shooting and collocation which should allow to tackle large dimensional problem as well. Hence, many jacobians types can be selected, computed with AD, or custom procedures. This is very unique and putting all in a table is difficult because of the combinatorial explosion (this is why the testing is intensive). Only the GPU is not tested on GH.
The normal form associated to the bifurcations of periodic orbits is based on the normal form of the associated Poincare return map PRM. This is unlike what is done in MatCont where another (more precise) technics is used. However, the PRM allows to study large dimensional problems.
Given this set of functionalities, we are quite close to those of MatCont and we are not many in this small club (I would say we are two).
These are quite advanced tools for numerical bifurcation analysis and only a few of us actually use them. I believe the reason is that it requires some advanced knowledge of bifurcation theory but also that only MatCont provided it until now, and thus only for ODE. It is exciting as BK opens now the door of PDE (fluid dynamics, climate, lasers, etc) or non local equations, for which these scenarios could be studied.
I hope some of you find it useful.