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

**URL:** <https://discourse.julialang.org/t/ann-new-version-of-package-bifurcationkit-jl-v0-1-11/75569>\
**Category:** Package Announcements\
**Tags:** package\
**Created:** [February 1, 2022, 10:58am UTC](https://discourse.julialang.org/t/ann-new-version-of-package-bifurcationkit-jl-v0-1-11/75569 "2022-02-01T10:58:55Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![rveltz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rveltz/32/2707_2.png) [@rveltz](https://discourse.julialang.org/u/rveltz)\
**Post date:** [February 1, 2022, 10:58am UTC](https://discourse.julialang.org/t/ann-new-version-of-package-bifurcationkit-jl-v0-1-11/75569/1 "2022-02-01T10:58:55Z")

</div>

Dear all,

I am glad to report a new version of [BifurcationKit.jl](https://github.com/rveltz/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](https://bifurcationkit.github.io/BifurcationKitDocs.jl/dev/tutorials/tutorials1b/#Temperature-model-with-ApproxFun,-no-AbstractArray-(intermediate)) based on `ApproxFun.jl`
- I added a simple [tutorial](https://bifurcationkit.github.io/BifurcationKitDocs.jl/dev/tutorials/ode/NME-MTK/#Neural-mass-equation-MTK) 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 😃
- 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](https://bifurcationkit.github.io/BifurcationKitDocs.jl/dev/tutorials/ode/lorenz84/#Extended-Lorenz-84-model-(codim-2-BT/ZH-aBS)), this one exhibits all codim 2 bifurcations so it is a nice “benchmark”.
- this is also shown for a 2d PDE [tutorial](https://bifurcationkit.github.io/BifurcationKitDocs.jl/dev/tutorials/tutorialsCGL/#Codim-2-Hopf-continuation) which is the Ginzburg-Landau equation.
- this is also shown for a 1d PDE [Langmuir](https://bifurcationkit.github.io/BifurcationKitDocs.jl/dev/tutorials/Langmuir/#Continuation-of-Hopf-and-Fold-points) 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.

Bests,

---

<div class="post-metadata">

**Author:** ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)\
**Post date:** [February 1, 2022, 1:40pm UTC](https://discourse.julialang.org/t/ann-new-version-of-package-bifurcationkit-jl-v0-1-11/75569/2 "2022-02-01T13:40:01Z")

</div>

Thanks, we’ve found this package to be very useful in tracking solutions of the nonlinear equations governing [steady-state lasers](http://arxiv.org/abs/arXiv:1312.2488) as you vary the laser “pump” power. Hopefully we’ll have a publication later this year citing it.

---

<div class="post-metadata">

**Author:** ![rveltz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rveltz/32/2707_2.png) [@rveltz](https://discourse.julialang.org/u/rveltz)\
**Post date:** [February 1, 2022, 2:51pm UTC](https://discourse.julialang.org/t/ann-new-version-of-package-bifurcationkit-jl-v0-1-11/75569/3 "2022-02-01T14:51:37Z")

</div>

Oh nice!

---

<div class="post-metadata">

**Author:** ![rveltz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rveltz/32/2707_2.png) [@rveltz](https://discourse.julialang.org/u/rveltz)\
**Post date:** [February 3, 2022, 10:36pm UTC](https://discourse.julialang.org/t/ann-new-version-of-package-bifurcationkit-jl-v0-1-11/75569/4 "2022-02-03T22:36:45Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)\
**Post date:** [February 3, 2022, 10:44pm UTC](https://discourse.julialang.org/t/ann-new-version-of-package-bifurcationkit-jl-v0-1-11/75569/5 "2022-02-03T22:44:10Z")

</div>

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).

---

<div class="post-metadata">

**Author:** ![rveltz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rveltz/32/2707_2.png) [@rveltz](https://discourse.julialang.org/u/rveltz)\
**Post date:** [February 3, 2022, 10:55pm UTC](https://discourse.julialang.org/t/ann-new-version-of-package-bifurcationkit-jl-v0-1-11/75569/6 "2022-02-03T22:55:22Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![wsshin](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/wsshin/32/360_2.png) [@wsshin](https://discourse.julialang.org/u/wsshin)\
**Post date:** [July 28, 2022, 12:13pm UTC](https://discourse.julialang.org/t/ann-new-version-of-package-bifurcationkit-jl-v0-1-11/75569/7 "2022-07-28T12:13:58Z")

</div>

@rveltz, where is the best place to ask questions about the usage of this package?

I was able to run successfully the simplest example at [Temperature model (Simplest example) · Bifurcation Analysis in Julia](https://bifurcationkit.github.io/BifurcationKitDocs.jl/dev/tutorials/tutorials1/#Temperature-model-(Simplest-example)) and am trying to modify it for my problem. The Newton solver to find the initial guess works fine. Then `continuation()` runs without an error, but the report shows that the parameter did not change:

```julia-repl
 ┌─ Number of points: 2
 ├─ Curve of EquilibriumCont
 ├─ Type of vectors: Vector{Float64}
 ├─ Parameter k starts at 1.2566370614359174e7, ends at 1.2566370614359174e7
 ├─ Algo: PALC
 └─ Special points:

```

even though I set `pMin = 897597.9010256552` and `pMax = 1.2566370614359174e7` in `continuation()`. Note that my parameter `k` did not change from `pMax`, which was also the parameter value where the initial guess solution was calculated.

Any suggestions? If you let me know a better channel to discuss this issue, I will repost the question there.

---

<div class="post-metadata">

**Author:** ![rveltz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rveltz/32/2707_2.png) [@rveltz](https://discourse.julialang.org/u/rveltz)\
**Post date:** [July 28, 2022, 12:39pm UTC](https://discourse.julialang.org/t/ann-new-version-of-package-bifurcationkit-jl-v0-1-11/75569/8 "2022-07-28T12:39:53Z")

</div>

For this, you can probably open issues or use the dedicated channel on slack.  
pMax is the largest parameter value you want, it should be larger than the one. Or you want the parameter to decrease in which case, set a negative ‘ds’
