ANN: new version of package 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 periodic solutions. In short, we can now use many more time sections than before while still having reasonable computation times.

  • we have now dedicated algorithms for ODEs. The parallel Poincaré/Standard Shooting methods have analytical jacobian written inplace and which rely partially on ForwardDiff. The reason is that we still cannot use AD with Poincare sections. We have also improved the method relying on finite differences for applications to ODE. We showcase this with a tutorial on ODE where > 200 time sections are used to compute long periodic orbits close to a homoclinic orbit.
  • we improved the algorithms for computing periodic orbit with the trapeze method. You can now access the different parts of the jacobian by the different sub-blocks. This is very useful because the jacobian is composed of a phase condition and a p-cyclic matrix. Depending on the case, it is more efficient to invert one instead of the other.
  • we provide a new tutorial using the Shooting method with FourierFlow.jl done in collaboration with Navid C. Constantinou.

This increase in power now brings an issue. The computation of the Floquet coefficients is less numerically stable because it relies the computation of the eigenvalues of a (large) product of matrices. I still need to find a periodic Schur decomposition, ideally a Matrix-free one. Similarly, having methods for inverting p-cyclic matrices (ideally iterative) would be fantastic. If the Krylov guys are hearing me… :smiley:

I hope you will find it useful,

Bests.

18 Likes

Fantastic work.

2 Likes