Skip to content

heyoka 4.0.0

Compare
Choose a tag to compare
@bluescarni bluescarni released this 02 Mar 11:57
· 556 commits to master since this release

Breaking changes

Version 4 of heyoka introduces several backwards-incompatible changes, most of which have been prompted by user feedback. The updated heyoka API should be more streamlined, easier to use and more difficult to misuse.

The detailed list of breaking changes is available at the following page, along with instructions on how to update your code for the API modifications:

https://bluescarni.github.io/heyoka/breaking_changes.html#bchanges-4-0-0

If you have questions, please do not hesitate to ask.

New compiled functions class

A new class that facilitates the creation and use of compiled functions, called cfunc, has been introduced. This class has been available for a while in the Python bindings, and it now makes its official debut in the C++ API. A tutorial illustrating the use of this class is available here:

https://bluescarni.github.io/heyoka/tut_cfunc.html#tut-cfunc

Support for Lagrangian and Hamiltonian mechanics

heyoka is now able to automatically generate (and solve) the equations of motion from user-supplied Lagrangians and Hamiltonians. The Python bindings provide a tutorial illustrating this new feature:

https://bluescarni.github.io/heyoka.py/notebooks/lagrangian.html#lagham-tut

Enhancements to the step callback API

It is now possible to pass a range of step callbacks as an optional argument to the propagate_*() functions. The callbacks will be automatically composed into a callback set and they will be executed at the end of each integration step.

spack availability

Thanks to work by @agseaton, heyoka is now available in the spack package manager. See the updated installation instructions:

https://bluescarni.github.io/heyoka/install.html#spack

Performance improvements

The substitution primitive subs() has been substantially sped up.

The full changelog, as usual, is available here:

https://bluescarni.github.io/heyoka/changelog.html