v0.8.0
HarmonicBalance v0.8.0
The release contains some breaking changes, i.e., some of you old code will not work on the new version. This includes:
- We changed the keyword
random_warmup::Boolto replace it withmethod::Charkeyword. We did this to allow more homoyopy methods then:total_degreeand:random_warmupFor example, now you could also use the:polyhedralmethod. See Homotopy Continuation documentation for more info. In the future, we are planning to add the:monodromymethod. - For larger systems, the classification was quite slow. This was partly due to inefficient use of dictionary as a data structure. We rewrote the code such that this was avoided and got 3x speedup from it. However, this comes with side effect that costum classification function defined by the user will not work for v0.8. Nevertheless, these costum function can easily be update by assuming a vector instead of dictionary.
Some other (non-breaking) noteworthy changes are:
- We threaded the classification process. Just start your julia instance with some threads and threading is automatically enabled.
- We have added the option to access all the homotopy solver options. The enables you to tweak
tracker_optionsandendgame_optionswhich make the homotopy faster. Just add the kwargs you want to theget_steady_statesand those will be passed on to the homotopysolvefunction. - The last but not the least, we finally got a seed feature. This means HarmonicBalance.jl is now completely reproduceable. This not only means that we now can write better tests for the package, but you can also more easily report bugs/results to collaborators. But even better, when sharing code to the outside world it will be reproduceable.
Merged pull requests:
- Fix double progress bar (#128) (@oameye)
- Make it possible to thread the classification of solutions (#130) (@oameye)
- Speed up for classification by refactoring solution interface (#133) (@jkosata)
- change
random_warmup::Boolkeyword tomethod::Char(#134) (@oameye) - classification bug (#135) (@oameye)
- classification bug (#136) (@oameye)
- Method keyword (#137) (@oameye)
- Add seed to reproduce results/bugs (#138) (@oameye)
- Update test.yml to test on 1.10 (#139) (@oameye)
- Play with warmup method and add polyhedral method (#140) (@oameye)
Closed issues:
get_single_solutionuse in internals (#132)