Gala

Latest version: v1.9.1

Safety actively analyzes 666166 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 4

1.7

================

New Features
------------

- Added a method to export the internal components of an
``MN3ExponentialDiskPotential()`` to three ``MiyamotoNagaiPotential`` instances.

- Added a new Milky Way potential model: ``MilkyWayPotential2022``, which is based on
updated measurements of the disk structure and circular velocity curve of the disk.

- Added the ability to use leapfrog integration within the ``DirectNBody`` integrator.

- Added a new coordinate frame for the Vasiliev+2021 Sagittarius stream coordinate
system, ``SagittariusVasiliev21``.

Bug fixes
---------

- Fixed a bug with the ``OrphanKoposov19()`` coordinate frame that caused the wrong
rotation matrix to be returned.

- Fixed an ``AstropyDeprecationWarning`` resulting from the use of ``override__dir__``.

- Fixed a bug in ``Orbit.estimate_period()`` that would cause the method to fail with a
``UnitsError`` if one orbit returned a nan value for the period.

- Fixed a bug when compiling the ``dop853`` integrator.

API changes
-----------

- Refactored the way ``GreatCircleICRSFrame()`` works to be more consistent and
unambiguous with coordinate frame definitions. The frame now requires an input pole
and origin, but can be initialized in old ways using the ``from_*()`` class methods
(e.g., with ``pole`` and ``ra0`` values).

1.6.1

==================

Bug fixes
---------

- Properly incorporate commits related to ``SCFInterpolatedPotential``.

1.6

================

New Features
------------

- Added a ``.replicate()`` method to Potential classes to enable copying
potential objects but modifying some parameter values.

- Added a new potential class ``MN3ExponentialDiskPotential`` based on Smith et
al. (2015): an approximation of the potential generated by a double
exponential disk using a sum of three Miyamoto-Nagai disks.

- The ``Orbit.estimate_period()`` method now returns period estimates in all
phase-space components instead of just the radial period.

- Added a ``store_all`` flag to the integrators to control whether to save
phase-space information for all timesteps or only the final timestep.

- Added a ``plot_rotation_curve()`` method to all potential objects to make a 1D plot
of the circular velocity curve.

- Added a new potential for representing multipole expansions ``MultipolePotential``.

- Added a new potential ``CylSplinePotential`` for flexible representation of
axisymmetric potentials by allowing passing in grids of potential values
evaluated grids of R, z values (like the ``CylSpline`` potential in Agama).

- Added a ``show_time`` flag to ``Orbit.animate()`` to control whether to show the
current timestep.

- Changed ``Orbit.animate()`` to allow for different ``marker_style`` and
``segment_style`` options for individual orbits by passing a list of dicts instead
of just a dict.

- Added an experimental new class ``SCFInterpolatedPotential`` that accepts a time
series of coefficients and interpolates the coefficient values to any evaluation time.

Bug fixes
---------

- Fixed a bug where the ``NFWPotential`` energy was nan when evaluating at the
origin, and added tests for all potentials to check for a finite value of the
potential at the origin (when expected).

- Fixed a bug in ``NFWPotential.from_M200_c()`` where the incorrect scale radius
was computed (Cython does not always use Python 3 division rules for dividing
integers!).

- Fixed a bug in the (C-level/internal) estimation of the 2nd derivative of the
potential, used to generate mock streams, that affects non-conservative force
fields.

API changes
-----------

- The ``Orbit.estimate_period()`` method now returns period estimates in all
phase-space components instead of just the radial period.

1.5

================

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()``

1.4.1

==================

- Fixed a RST bug that caused the README to fail to render.

1.4

================

New Features
------------

- ``UnitSystem`` objects can now be created with custom units passed in as
Astropy ``Quantity`` objects.

- Added functionality to convert Gala potential objects to Galpy potential
objects, or to create Gala potential objects from a pre-existing Galpy
potential.

- Added a ``plot_3d()`` method for ``Orbit`` objects to make 3D plots of the
orbital trajectories.

Bug fixes
---------

- Fixed a bug when calling ``orbit.norbits`` when the representation is not
cartesian.

- Fixed a bug with ``GreatCircleICRSFrame.from_endpoints()`` that caused an
error when the input coordinates had associated velocity data.

- Fixed a bug with the ``JaffePotential`` density evaluation, which was too low
by a factor of two.

- Implemented a density function for ``LogarithmicPotential``, which was
missing previously.

- The analytic action-angle and ``find_actions()`` utilities now correctly
return frequencies with angular frequency units rather than frequency.

API changes
-----------

- Removed the deprecated ``gala.coordinates.get_galactocentric2019()`` function.

Page 2 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.