Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

Releases: adrn/gala

v1.11.0

11 Dec 04:05
60ec324

Choose a tag to compare

Changelog

New Features

  • A C++ compiler is now required to build Gala from source.
  • Orbit integration performance is improved by changing the way vectorization over
    multiple orbits is handled internally.
  • Added a new gala.potential.SphericalSplinePotential class for representing
    generic spherical potentials with spline interpolation in either potential, density,
    or mass enclosed.
  • Added coordinate symmetry support for potential classes: spherical potential methods
    can now be evaluated using r= and cylindrical potentials using R= and z=
    instead of requiring full 3D Cartesian coordinates.
  • Added a new gala.potential.TimeInterpolatedPotential class that enables wrapping
    any potential class to support time-dependent parameters through interpolation.
  • Unit systems in potential classes can now be specified using string names
    (e.g., 'galactic', 'dimensionless', etc.) when initializing potential
    instances or when replacing units with .replace_units().
  • C-level integrator arguments can now be specified when running a mock stream
    simulation through the Integrator_kwargs in MockStreamGenerator.run().
  • Added support for using the Leapfrog integrator with MockStreamGenerator (pass
    Integrator=gi.LeapfrogIntegrator in MockStreamGenerator.run()).
  • Integrators can now be specified using lowercase string names (e.g., 'leapfrog',
    'dopri853', 'ruth4') in Hamiltonian.integrate_orbit(),
    DirectNBody.integrate_orbit(), and MockStreamGenerator.run().
  • Added a new method MockStream.rotate_to_progenitor_plane() that transforms a mock
    stream into a new coordinate system where the progenitor's orbital plane is aligned
    with the xy-plane, the stream and progenitor are centered at (0, 0), and the stream
    primarily extends in the x direction (leading tail at positive x and trailing tail at
    negative x).
  • EXP: constructing potentials from pyEXP objects is now supported via
    gala.potential.PyEXPPotential.
  • EXP: force evaluation with gala.potential.EXPPotential should now be much faster.

Bug fixes

  • gala.potential.EXPPotential now propagates C++ exceptions to Python.
  • Fixed a deprecation warning with astropy>=v7.1.
  • Fixed a matplotlib warning when plotting an orbit with plot() and
    autolim=True related to using aspect="equal".
  • replicate() and replace_units now work with EXPPotential.
  • Fixed incorrect results from MockStreamGenerator.run() with an
    n_particles array.
  • Fixed a bug in MockStreamGenerator.run() when using DirectNBody with
    output_filename and more bodies than stream particles, which caused a "TypeError:
    Can't broadcast" error.
  • Fixed a bug that caused GreatCircleICRSFrame to throw an error about a missing
    attribute _R when transforming to/from the frame.

API changes

  • Added copy kwarg to gala.dynamics.PhaseSpacePosition,
    gala.dynamics.Orbit, and gala.dynamics.MockStream.
  • The integrate_orbit() method now validates that the input initial conditions have
    the correct shape given the dimensionality of the potential.
  • Removed custom ImmutableDict implementation in favor of
    types.MappingProxyType.
  • Added new keyword arguments ndim and convert to PotentialParameter to
    control the expected number of dimensions for array parameters and to specify a
    conversion function for parameter values, respectively.
  • Removed deprecated gala.dynamics.find_actions in favor of find_actions_o2gf.
  • Removed deprecated radial=True kwarg from Orbit.estimate_period().
  • Removed deprecated value() method from potential clases in favor of using the
    __call__() method or energy().
  • Removed deprecated to_galpy_potential() method from potential classes in favor of
    using as_interop("galpy").
  • The Gala Milky Way potential classes (MilkyWayPotential and
    MilkyWayPotential2022) have been combined into a single MilkyWayPotential
    class with a version= kwarg to specify the desired version (e.g., 'v1',
    'v2', etc.). The old classes are deprecated and will be removed in a future
    release.

Build changes

  • EXP: the instructions to build Gala against EXP have changed. Only the EXP install
    dir is now used.

Other

  • Refactored package layout to move all source code into a src/ directory, and move
    all tests into a top-level tests/ directory.

Pull requests

  • chore: update pre-commit hooks by @pre-commit-ci[bot] in #437
  • build(deps): bump pypa/cibuildwheel from 3.0.1 to 3.1.3 by @dependabot[bot] in #438
  • exp: propagate C++ exceptions to Python by @lgarrison in #433
  • chore: update pre-commit hooks by @pre-commit-ci[bot] in #440
  • build(deps): bump actions/checkout from 4 to 5 by @dependabot[bot] in #441
  • build(deps): bump actions/download-artifact from 4 to 5 by @dependabot[bot] in #442
  • exp: fix composite potentials by @lgarrison in #444
  • exp: improve file path handling by @lgarrison in #445
  • build(deps): bump codecov/codecov-action from 5.4.3 to 5.5.0 by @dependabot[bot] in #450
  • build(deps): bump pypa/cibuildwheel from 3.1.3 to 3.1.4 by @dependabot[bot] in #451
  • chore: update pre-commit hooks by @pre-commit-ci[bot] in #448
  • chore: update pre-commit hooks by @pre-commit-ci[bot] in #452
  • EXPPotential: Allow a different snapshot time unit by @adrn in #454
  • chore: update pre-commit hooks by @pre-commit-ci[bot] in #455
  • build(deps): bump codecov/codecov-action from 5.5.0 to 5.5.1 by @dependabot[bot] in #456
  • build(deps): bump actions/setup-python from 5 to 6 by @dependabot[bot] in #457
  • vectorize gradients for leapfrog integration by @lgarrison in #446
  • Astropy 71 repname by @adrn in #459
  • chore: update pre-commit hooks by @pre-commit-ci[bot] in #458
  • chore: update pre-commit hooks by @pre-commit-ci[bot] in #460
  • Fix some frame transforms that need a frame instance not class by @adrn in #462
  • build(deps): bump pypa/cibuildwheel from 3.1.4 to 3.2.0 by @dependabot[bot] in #465
  • chore: update pre-commit hooks by @pre-commit-ci[bot] in #464
  • vectorization follow-ups by @lgarrison in #447
  • potential: keep track of which parameters were set by the user by @lgarrison in #469
  • mockstream: fix out-of-bounds array read by @lgarrison in #471
  • chore: update pre-commit hooks by @pre-commit-ci[bot] in #472
  • integrate: optimize save_all by @lgarrison in #449
  • chore: update pre-commit hooks by @pre-commit-ci[bot] in #475
  • Add interpolated spherical potential model by @adrn in #467
  • build(deps): bump pypa/cibuildwheel from 3.2.0 to 3.2.1 by @dependabot[bot] in #476
  • reduce transposes in gradient evaluation by @lgarrison in #473
  • Add concept of coordinate symmetry to potential classes by @adrn in #478
  • A few minor docs fixes by @adrn in #480
  • Fix mockstream nbody output bug by @adrn in #481
  • ci improvements by @lgarrison in #474
  • Validate initial conditions shape in integrate_orbit by @adrn in #482
  • Replace ImmutableDict with MappingProxyType by @adrn in #484
  • Add a repr for Hamiltonian by @adrn in #485
  • Support time interpolation of parameters, origin, rotation for all potential classes by @adrn in #453
  • Adopt src package layout, remove extension_helpers, consolidate tests by @adrn in #488
  • build(deps): bump astral-sh/setup-uv from 6 to 7 by @dependabot[bot] in #491
  • chore: update pre-commit hooks by @pre-commit-ci[bot] in #492
  • Allow specifying Potential unit system by string name by @adrn in #495
  • Fix error with great circle frame by @adrn in #496
  • Remove long-deprecated features in prep for v1.11 by @adrn in #498
  • Add tests and simplify some boilerplate C by @adrn in #499
  • Ignore failing orbits in mockstream and disable stiffness checking by @adrn in #497
  • Add leapfrog integrator for mock stream simulation by @adrn in #502
  • Allow specifying integrator with string name by @adrn in #504
  • Rework MilkyWayPotential classes and add document describing MWP2022 by @adrn in #503
  • chore: update pre-commit hooks by @pre-commit-ci[bot] in #505
  • bui...
Read more

v1.10.1

22 Aug 00:13
878bf57

Choose a tag to compare

This is a bugfix release that fixes two bugs with the EXPPotential interface.

This includes changes from:

Full Changelog: v1.10.0...v1.10.1

v1.10.0

31 Jul 14:24
6039ece

Choose a tag to compare

What's Changed

  • Tiny PR changing one final Integrator.run() by @TomWagg in #389
  • Bump pypa/cibuildwheel from 2.20.0 to 2.21.0 by @dependabot[bot] in #390
  • Bump pypa/cibuildwheel from 2.21.0 to 2.21.1 by @dependabot[bot] in #391
  • Add a simulation unit system class by @adrn in #392
  • Bump codecov/codecov-action from 4.5.0 to 5.1.2 by @dependabot[bot] in #401
  • Bump pypa/cibuildwheel from 2.21.1 to 2.22.0 by @dependabot[bot] in #398
  • Detect pre/post Scipy 1.15 for derivative function behavior by @adrn in #404
  • Switch to using dynamically-allocated arrays to avoid arbitrary limit on N bodies by @adrn in #403
  • Bump pypa/cibuildwheel from 2.22.0 to 2.23.0 by @dependabot[bot] in #406
  • Bump codecov/codecov-action from 5.1.2 to 5.4.0 by @dependabot[bot] in #405
  • Bump pypa/cibuildwheel from 2.23.0 to 2.23.1 by @dependabot[bot] in #407
  • Use dynamically allocated arrays for potential components in CCompositePotential by @adrn in #409
  • Bump pypa/cibuildwheel from 2.23.1 to 2.23.2 by @dependabot[bot] in #408
  • Pass floats to agama setUnits instead of unit objects by @adrn in #410
  • Update mockstreams.rst by @segasai in #411
  • Add short circuit for C potential evaluation when position does not require a shift/rotation by @adrn in #414
  • Enable dense output for dop853 integrator (and refactor the way integration is done here) by @adrn in #416
  • Bump pypa/cibuildwheel from 2.23.2 to 2.23.3 by @dependabot[bot] in #418
  • Bump codecov/codecov-action from 5.4.0 to 5.4.2 by @dependabot[bot] in #412
  • Fix bug with passing array length 1 as progenitor mass to mock stream generator by @adrn in #419
  • Fix bug with setting value of G in simulation unit system by @adrn in #420
  • Allow specifying plot units as a UnitSystem instance by @adrn in #421
  • Add ability to use string parameters as potential parameters by @adrn in #422
  • Bump codecov/codecov-action from 5.4.2 to 5.4.3 by @dependabot[bot] in #424
  • Bump pypa/cibuildwheel from 2.23.3 to 3.0.0 by @dependabot[bot] in #426
  • add EXP potential by @lgarrison in #413
  • Fix powerlaw cutoff potential normalization by @adrn in #425
  • Don't check that EXP potential is zero at infinity by @adrn in #427
  • Add precommit hooks and run on all files by @adrn in #429
  • exp: return nan instead of crashing the interpreter by @lgarrison in #430
  • exp doc tweaks by @lgarrison in #431
  • build(deps): bump pypa/cibuildwheel from 3.0.0 to 3.0.1 by @dependabot[bot] in #434
  • chore: update pre-commit hooks by @pre-commit-ci[bot] in #432
  • Add convenience properties to compute M200, R200, c200 from NFWPotential instance by @adrn in #436
  • Improve docstrings in some places by @adrn in #428

New Contributors

Full Changelog: v1.9.1...v1.10.0

v1.9.1

27 Aug 00:50

Choose a tag to compare

What's Changed

Note: This release fixes the wheel builds for linux and mac and no new features or bug fixes are included. See v1.9.0 for a list of features and fixes in this major version.

  • Install gsl into container and reenable mac wheels by @adrn in #388

Full Changelog: v1.9.0...v1.9.1

v1.9.0

22 Aug 17:16

Choose a tag to compare

What's Changed

  • Bump FedericoCarboni/setup-ffmpeg from 2 to 3 by @dependabot in #354
  • Bump codecov/codecov-action from 3.1.4 to 3.1.5 by @dependabot in #356
  • Bump pypa/cibuildwheel from 2.16.2 to 2.16.4 by @dependabot in #357
  • Bump codecov/codecov-action from 3.1.5 to 4.0.1 by @dependabot in #359
  • Only upload to testpypi on push to main, and update upload/download artifact by @adrn in #361
  • Bug fix in FardalStreamDF. by @jl3937 in #358
  • Bump pypa/cibuildwheel from 2.16.4 to 2.16.5 by @dependabot in #360
  • Bump codecov/codecov-action from 4.0.1 to 4.1.0 by @dependabot in #363
  • Fix Potential.plot_rotation_curve() when an ax is provided by @adrn in #362
  • Enable passing a multiprocessing/parallel pool when computing SCF coefficients by @adrn in #364
  • Bump pypa/cibuildwheel from 2.16.5 to 2.17.0 by @dependabot in #365
  • Fix inefficient nbody orbit reorder by @adrn in #366
  • Added Burkert cpotential by @HSouch in #367
  • Fix passing nbody instance to mockstream.run with save_all=False by @adrn in #369
  • Add implementation of make_getter (removed from astropy) by @adrn in #377
  • Compatibility with numpy 2.0 by @adrn in #387
  • Bump pypa/cibuildwheel from 2.17.0 to 2.20.0 by @dependabot in #385
  • Remove unused modules by @AlexKurek in #384
  • deprecate Integrator.run for integrator.call by @nstarman in #355
  • Added "from_r0" to Burkert potential by @HSouch in #370
  • Implement Chen+24 particle spray model by @ybillchen in #386

New Contributors

Full Changelog: v1.8.1...v1.9.0

v1.8.1

02 Jan 02:22
c3fc2d7

Choose a tag to compare

What's Changed

  • Bump actions/download-artifact from 3 to 4 by @dependabot in #348
  • Update citbuildwheel process and upload to testpypi by @adrn in #352

Full Changelog: v1.8.0...v1.8.1

v1.8.0

23 Dec 15:11

Choose a tag to compare

What's Changed

  • pass time through plot functions, and reformat with black by @adrn in #332
  • Update default_flow_style in yaml serialization by @adrn in #335
  • Bump actions/checkout from 3 to 4 by @dependabot in #336
  • GSL warnings for discrete SCF functions by @TomWagg in #337
  • IO for SCF potentials by @TomWagg in #338
  • Added a guiding radius method and test by @adrn in #340
  • Add a way to convert Gala potential instances to Agama potential instances by @adrn in #341
  • BLD: pin extension-helpers to 1.* following upstream recommendation by @neutrinoceros in #343
  • Fix compatibility with Astropy v6.0 by @adrn in #345
  • Bump conda-incubator/setup-miniconda from 2 to 3 by @dependabot in #342
  • Bump actions/setup-python from 4 to 5 by @dependabot in #347

New Contributors

Full Changelog: v1.7.1...v1.8.0

v1.7.1

05 Aug 14:47

Choose a tag to compare

This is a maintenance release. See the changelog from v1.7 for new features.

Full Changelog: v1.7...v1.7.1

v1.7

05 Aug 10:56

Choose a tag to compare

What's Changed

  • Fixed the oph19_to_icrs function by @sophialilleengen in #312
  • Fix test warnings and failures by @adrn in #315
  • Clean up gala.coordinates and overhaul great circle coordinate frame by @adrn in #314
  • Fix bug with estimate_period by @adrn in #316
  • Add method to export MN3 potential into three MN potentials by @adrn in #317
  • A few minor fixes by @adrn in #318
  • Add MilkyWayPotential2022 by @adrn in #324
  • Bump dfm/rtds-action from 1.0.3 to 1.1.0 by @dependabot in #323
  • Bump codecov/codecov-action from 3.1.1 to 3.1.4 by @dependabot in #322
  • Fix compiler issue with solout in dop853 integrator by @adrn in #327
  • Speedup Nbody and add new integrator functionality by @adrn in #321
  • V21 frame by @adrn in #328

Full Changelog: v1.6.1...v1.7 and https://github.com/adrn/gala/blob/main/CHANGES.rst

v1.6.1

07 Nov 13:53
55b41dd

Choose a tag to compare

Changelog included below:

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.