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

Dear all,

I am glad to report a new version of BifurcationKit.jl.
It is a major change in the API where users are now expected to define a BifurcationProblem to perform bifurcation / continuation analysis and pass a continuation algorithm

This has many benefits.

Firstly, one can, ala DifferentialEquations.jl, change the continuation method very easily:

prob::BifurcationProblem
br = continuation(prob, Natural())
br = continuation(prob, PALC())
br = continuation(prob, MoorePenrose())

It is quite easy to add a continuation algorithm and I will document the interface in the docs asap.

Second, it allows, behind the scenes, to check what is available (second derivative, etc) on the vector field side, remove code duplication, …

Thirdly, it allows to use dispatch to specialise the methods of BifurcationKit to DAE, DDE,… or even ::ODEProblem. This has not been fully exploited yet.

Also, the result types have been modified so that everything is saved: algorithm, problem, options,… This is very useful because BK generates its own options, problem, algorithms from user passed arguments (eg for periodic orbits, etc).

The docs are up to date thanks to the help of many on slack (@lmiq, @giordano, @carstenbauer …). You can select the package version in docs if you want to stick to the old API for a while.

On a side note, the package has been (finally!) moved to the organisation bifurcationkit.

A lot of bugs have been solved, so I encouraged you to use the new version 0.2.0

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.

Bests,

8 Likes