================
New Features
------------
- Implemented a basic progress bar for integrating orbits and mock streams. Pass
``progress=True`` with ``Integrator_kwargs`` when calling
``.integrate_orbit()``, or pass ``progress=True`` to
``MockStreamGenerator.run()``.
- Added a new symplectic integrator: The Ruth 4th-order integrator, implemented
with the class ``Ruth4Integrator``.
- Added a ``Orbit.animate()`` method to make ``matplotlib`` animations of
orbits.
- Modified ``Orbit._max_helper()`` to use a parabola instead of interpolation
- Added functionality to transform from action-angle coordinates to Cartesian
position velocity coordinates in the Isochrone potential:
``gala.dynamics.actionangle.isochrone_aa_to_xv()``.
- Added a new method on ``DirectNBody`` to enable computing the instantaneous,
mutual, N-body acceleration vectors ``DirectNBody.acceleration()``.
Bug fixes
---------
- Fixed ``find_actions()`` to accept an ``Orbit`` instance with multiple orbits.
- Fixed a bug that appeared when trying to release all mock stream particles at
the same timestep (e.g., pericenter).
- Fixed a bug where time arrays returned from ``parse_time_specification``
could come back with a non-float64 dtype.
- Fixed a bug with ``DirectNBody`` with composite potentials where only the
first potential component would move as a body / particle.
- Fixed a bug with the Python implementation of Leapfrog integration
``LeapfrogIntegrator`` that led to incorrect orbits for non-conservative
systems that were integrated backwards (i.e. with ``dt<<0``).
- Fixed a bug with the ``FlattenedNFW`` potential class in which the energy and
gradient functions were not using the inputted flattening (``c`` value) and
were instead defaulting to the spherical NFW model.
- Enabled pickling ``Frame`` instances and therefore now ``Hamiltonian``
instances.
- Fixed a bug with ``autolim=True`` during Orbit plotting where the axes limits
were only dependent on the most recent Orbit rather than all that were present
on the axis
API changes
-----------
- Renamed ``gala.dynamics.actionangle.isochrone_to_aa()`` to
``gala.dynamics.actionangle.isochrone_xv_to_aa()``
- Renamed ``gala.dynamics.actionangle.find_actions()`` to
``gala.dynamics.actionangle.find_actions_o2gf()``