All notable changes to this project will be documented in this file (hopefully). No performance improvements will be notified but mainly the addition of new methods, the modifications of internal structs, etc.
- change bordered linear solvers' interface
record_from_solution
has been changed to the following definition
- Setfield.jl is not anymore the main component of BifurcationKit to support parameter axis. It has been changed in favour of Accessors.jl
- remove
Requires.jl
and use extensions. This requires julia>=1.9
- add field
save_solution
toBifurcationProblem
. Allows to save problem state along with the current solution. Useful for periodic orbits for example where we can save the phase condition and the mesh when the latter is adapted.
- add function
_keep_opts_cont
to filter continuation options - order 2 prediction for periodic orbit from Hopf bifurcation
- add
jacobian(Π::PoincaréMap{ <: WrapPOSh }, x, pars)
hasstability
becomes_hasstability
getvectortype
becomes_getvectortype
- add condensation of parameters, great speedup for collocation of periodic orbits
- add
in_bisection
field in structContState
- allow to do codim 2 continuation of PO with collocation and mesh adaptation
update_section_every_step
becomes a UInt- add fields in
PeriodDoublingProblemMinimallyAugmented
andNeimarkSackerProblemMinimallyAugmented
for holding Resonance test values - add specific finalizer for Fold of PO when using Collocation or shooting
- add struct
FinalisePO
update_minaug_every_step = 1
by default for Hopf / Fold continuationupdate_minaug_every_step = 1
is default for for PD / NS continuation
- add
getDelta
to the interface ofAbstractFlow
- remove
finDiffEps
fromContinuationPar
.
- use jvp function name in
Flow
interface - add radius to section of Poincare Shooting
- add _mesh field to reconstruct POColl problem (adapted mesh) from previous solution
- add new jacobian parametrization using
struct
s instead of Symbol - remove
θ
from ContinuationPar
- add delta keyword to BifurcationProblem constructor
MISSSINF
- new interface based on the problem
BifurcationProblem
- switch from
DiffEqBase
toSciMLBase
- change function name
closesttozero
torightmost
- ⛳️ add a new interface for Flows
- add custom distance for
DeflationOperator
- add possibility to use forward diff (AD) with deflation operator
- the method for periodic orbits
getM
becomesgetMeshSize
- add abstract types
AbstractDirectLinearSolver
andAbstractIterativeLinearSolver
- the function
getTrajectory
becomesgetPeriodicOrbit
- add struct
SolPeriodicOrbit
to allow for unified plotting interface with all methods for computing periodic orbits - ⛳️ the keyword argument
linearPO
is renamed intojacobianPO
- add newton / continuation methods for
TWProblem
- add
GEigArpack
generalized eigensolver
- remove documentation from package, it is now located in BifurcationKitDocs.jl
- change function name problemForBS into reMake for aBS of periodic orbits
- add function
generateSolution
to generate guess for computing orbits from a function solutiont -> orbit(t)
- ⛳️ add orthogonal collocation method for periodic orbits
- add additional method for computing Floquet multipliers based on generalized eigenvalue problem
- add new problem for symmetries
TWProblem
- add example for wave computation
- refactoring, extractTimeSlices becomes getTimeSlices
- add a simple callback to limit residuals in Newton iterations
cbMaxNorm
- ⛳️ add branch switching for branches of PO at BP / PD
- auto generate more tutorials
- rename
get3Jet
intogetJet
- remove
BlockArrays.setblock!
occurrences which are deprecated
- add
perturbGuess
option tomulticontinuation
- change option
printSolution
torecordFromSolution
in continuation and similar functions
- add new function getFirstPointsOnBranch to allow fine grained control of aBS
- add full automatic differentiation for Deflated Problems
- ⛳️ add computing full transcritical/pitchfork branch (not half) in
bifurcationDiagram
- move toward automatic generation of docs with figures
- add
applytoX, applytoY
option to plotting
- add function
get3Jet
to compute Taylor expansion getLensParam
becomesgetLensSymbol
- add detection of codim 2 singularities
- rename
HopfBifPoint
->Hopf
- rename
GenericBifPoint
intoSpecialPoint
andbifpoint
tospecialpoint
- add applytoY keyword to plot recipe
- remove
p->nothing
as default argument incontinuationHopf
- add bordered linear solver option in
newtonHopf
- remove type piracy for
iterate
- put the computation of eigenvalues in the iterator
- correct mistake in bracketing interval in
locateBifurcation!
- remove
GMRESIterativeSolvers!
from linearsolvers
- correct bug in the interval locating the bifurcation point (in bisection method)
- ⛳️ add
bothside
kwargs to continuation to compute a branch on both sides of initial guess - update the Minimally augmented problem during the continuation. This is helpful otherwise the codim 2 continuation fails.
- [WIP] detection of Bogdanov-Takens and Fold-Hopf bifurcations
- remove field
foldpoint
from ContResult
- improve bordered solvers for POTrap based on the cyclic matrix
- ⛳️ update phase condition during continuation for shooting problems and Trapezoid method
- remove fields
n_unstable
,n_imag
andstability
fromContResult
and put it in the fieldbranch
.
- the keyword argument
Jt
for the jacobian transpose is writtenJᵗ
- new way to use the argument
printSolution
incontinuation
. You can return (Named) tuple now.
- add new type GenericBifPoint to record bifurcation points and also an interval which contains the bifurcation point
- add
kwargs
to argumentsfinaliseSolution
- add
kwargs
to callback fromnewton
. In particular, newton passesfromNewton=true
, newtonPALC passesfromNewton = false
- save intervals for the location of bifurcation points in the correct way, (min, max)
- better estimation of d2f/dpdx in normal form computation
- change of name
HyperplaneSections
->SectionPS
for Poincare Shooting
- clamp values in [pMin, pMax] for continuation
- put arrow at the end of the branch (plotting)
- add eta parameter in ContinuationPar
- change name
PALCStateVariables
intoContState
andPALCIterable
intoContIterable
- ⛳️ add Deflated Continuation
- ⛳️ add Multiple predictor (this is needed to implement the
pmcont
algorithm frompde2path
(Matlab)
- ⛳️ add Polynomial predictor
- ⛳️ add Branch switching for non-simple branch points
The package is registered.
- Rename option
ContinuationPar
:saveSolEveryNsteps
-->saveSolEveryStep
- Rename option
ContinuationPar
:saveEigEveryNsteps
-->saveEigEveryStep
- Rename option
ContinuationPar
:plotEveryNsteps
-->plotEveryStep
- change the name of the package into
BifurcationKit.jl
- The options
computeEigenvalue
inContinuationPar
has been removed. It is now controlled withdetectBifurcation
.
- ⛳️ automatic branch switching from simple Hopf points
- ⛳️ automatic normal form computation for any kernel dimension
- ⛳️ automatic branch switching from simple branch points (equilibrium)
- ⛳️ automatic normal form computation