Past feature updates and fixes
The January 28, 2025 release implements several significant updates and bug fixed as described below:
- New functionality General-purpose support for analysis of continuation problems defined by constraints that are linearly dependent on the corresponding solution manifold, e.g., analysis of periodic orbits in problems with conserved quantities or bifurcation analysis for dynamical systems with symmetries.
- New functionality General-purpose support for generic branch switching that eliminates the need for specialized constructors (e.g.,
ode_BP2ep
and ode_BP2po
) and that is compatible also with analysis of the class of continuation problems described in the previous bullet.
- New functionality General-purpose support for detection, location, and handling of special points for piecewise-constant monitor functions associated with discrete jumps in their values.
- New documentation Updates to tutorials and demos to reflect new functionality, including regularization of problems with linearly dependent constraints.
- Bug fix Fix bug in
hspo_plot_sol
to support plotting of multisegment trajectories with appropriately shifted time intervals.
- Bug fix Fix bug preventing restarting continuation from a point along a previously computed family of torus bifurcations of periodic orbits.
- Bug fix Fix bug in event handler for equilibrium saddle-node bifurcations to ensure that the appropriate eigenvector is stored with the solution file also when the bifurcation is not a fold point.
- Bug fix Introduce a
-no-pars
option for ode
constructors to support constructing composite continuation problems from previously stored solutions.
- Bug fix Corrected typos in
int_optim
demo.
- Bug fix Improved initialization of continuation along branch of periodic orbits emanating from Hopf bifurcation.
NOTE: The October 26, 2023 release is identical with the one that was previously posted on August 15, but updates the encoding of sco_sym2funcs.m to accommodate use with Matlab 2023a and later on Windows as explained in this ticket.
NOTE: The August 15, 2023 release is identical with the one that was previously posted on August 14, but corrects a bug in atlas_kd that affects flat manifolds and updates plot_atlas_kd for this case.
The August 14, 2023 release implements several significant updates and bug fixes as described below:
- New documentation Added an entirely new set of tutorial documentation for
COCO
beginners with particular interest in basic bifurcation analysis.
- New functionality Calls to toolbox constructors for the 'ode' toolbox family that previously required sequences of function handles now allow for structs with function handles of arbitrary derivatives, including directional derivatives. Additionally, for all currently used derivatives, a complete set of finite-difference approximations that depend on up to two distinct step sizes has been provided.
- New functionality Introduction of additional optional setting for the 'atlas_1d' algorithm to allow for scaling of the step size by the maximum norm rather than the Euclidean norm.
- New functionality Upgrade to symcoco functionality and documentation that are compatible with support for higher-order and directional derivatives.
- Bug fix The coco_func_data class was made into a subclass of the handle class in order to allow for automatic garbage collection and elimination of trailing handles to deleted objects. This is part of a successful effort to eliminate a memory leak due to usage of persistent variables without garbage collection. This primarily affected continuation using the atlas_kd algorithm, where memory had to be manually deleted before each run with the command
coco_func_data.pointers('set', [])
. This is no longer necessary.
- Bug fix Prevent modification of external continuation problem structure by the coco command. This instead creates a copy of the first argument, which is then removed from memory (including all related objects) when the coco function finishes executing.
- Bug fix Fix to bug in coco_remesh that led to drift in inactive continuation parameters due to adaptive remeshing. Inactive continuation parameters are now held constant also across such remeshing events.
- Bug fix Fix to bug in ep_HB_construct that led to detection of spurious branch points during continuation along families of neutral saddles.
The following fix was included in the March 22, 2020 release:
- Error in po_read_solution for TR2TR continuation. Corrected in commit r3148.
The following fixes were included in the November 18, 2017 release:
- Error in the discretization of the initial solution guess for branch switching at period-doubling bifurcations for smooth and hybrid dynamical systems. Corrected in commit r2947.
- Changed syntax for the Matlab svds function.
- Incorrect Jacobian in coco_add_functionals. Corrected in commit r2969.
- Incorrect Jacobian in coll_var_construct_equ. Corrected in commit r2988.
The following fix is included in the February 10, 2016 release:
- Error in the implementation of the 'po' toolbox for continuation of saddle-node bifurcations in multi-segment periodic orbit problems. Change line 121 in po/toolbox/private/hspo_SN_construct_eqn.m to
x = u(sn.p_idx(end) + sn.sidx{i});
The following fix is included in the January 26, 2016 release:
- Error in the implementation of the 'coll' toolbox for non-autonomous vector fields. Change lines 34 and 39 in coll/toolbox/private/coll_mesh.m to
tnrm = tt(end);
mesh.tbp = tt(:)/tnrm;
and
respectively.
The following fix is included in the January 11, 2016 release:
- A missing table of contents was added to the tutorial file for the 'coll' toolbox.
- Reverted the 'bratu' and 'pdeig' demo files in the 'ep' toolbox in a January 7, 2016 release to the correct version in the November 1, 2015 release.
The following fix is included in the November 1, 2015 release:
- 'coll', 'bvp', and 'po' made fully compatible with non-autonomous vector fields, by including initial time among the continuation variables. This eliminates the need to consider trajectory segments on the interval [0,T] and makes a future, implementation of 'hspo' that is compatible with non-autonomous hybrid dynamical systems straightforward.
The following fix is included in the October 30, 2015 release:
- Changes to the use of the coco_func_data class in the core and production-ready toolboxes (but not toolboxes from Recipes for Continuation) have been made to speed up execution signifcantly.
The following fix is included in the November 6, 2014 release:
- Error in demo_hspo_v2.m in the examples/recipes/hspo_v2_demo folder.
Change line 48 to:
`bd1 = coco(prob, 'run1', [], 1, 'om', [0.5 1.5]);`
This will allow the remainder of the demo to run.
The data required by figure_17_4.m and figure_17_5.m is unchanged.
The following fix is included in the November 5, 2014 release:
- Error in chop_polyhedron.m in the toolbox/covering/@atlas_kd/private folder.
Change line 38 to:
`ep_flag = (chart1.ep_flag & chart1.pt~=0) | (chart1.pt==0 & any(chart1.P.mark));`
`chart1.bv = find(~chart1.P.mark & ~ep_flag);`
This will provide correct handling of computational domain boundaries.