Skip to content

Releases: jp-duminy/octavius

v0.9.3.1

Choose a tag to compare

@jp-duminy jp-duminy released this 24 Oct 17:17

Octavius v0.9.3.1 fixes some bugs and adds some minor extra functionality requested by users. It is recommended to update soon to avoid the discovered bugs.

Bug Fixes

  • Fixed a centre-of-mass bug which caused all combined centre of mass values to sit at the extremes of the box (per #26). This bug was fairly consequential.
  • Ensured all halo virial quantities appear in the catalogue (per #29).
  • Corrected two output column units (per #29).
  • Ensured the h factor is divided out of GADGET-style kernel lengths (per #29).
  • Ensured SWIFT's negative SFRs are not considered valid in group properties (per #26).
  • Fixed a minor issue in serial Octavius where the pipeline tried to use comm (per #26).
  • Fixed minor documentation typos.

New Features

  • SIMBA-C is now supported (per #29).
  • Optional config flag distribute_halo_hydrogen for a new subroutine in properties_local_environment which computes diffuse HI and H2 masses (per #32 for the HI community).
  • Added min_gas_per_galaxy criterion for those wanting to consider gas-rich galaxies. Another win for the HI community.
  • CLAUDE.md and AGENTS.md to help guide AI assistants, based on the apache airflow/polars AI policies and my own thoughts.
  • Updated Ruff formatting rules for consistency across versions.
  • Support for passing str instead of pathlib.Path objects to functions, with internal Path coercion (per #30).
  • Added unit tests to prevent the centre-of-mass bug rearing its ugly ahead again and any Internals unit conversion issues.
  • Added some more task tags in preparation for a unified CODE_UNITS & DTYPES abstraction.
  • Very minor optimisations I spotted in some older code touched as part of the PR.

v0.9.3

Choose a tag to compare

@jp-duminy jp-duminy released this 10 Sep 09:54

Octavius v0.9.3 brings optimisations and bug fixes.

Optimisations

  • Following an investigation into how much the halo gas was improving accuracy on m100n1024, the decision was made to revert to galaxy-level gas as magnitude corrections of order ~0.005 did not justify the corresponding computational cost; the few outliers were LOS-dependent.
  • Low-level optimisations in FOF6D and photometry: moving precomputable values above loops, ordering arrays so the iterations are contiguous, multiplying by inverse instead of dividing where precomputable, etc.
  • Can expect to see significant speedups in photometry and minor speedups in FOF6D.
  • Added an early return skip for the pipeline when necessary data is not present (high redshift snapshots with no haloes)

Bug fixes

  • Fixed a memory leak bug when running with AHF catalogues where the child subhaloes appeared before their parents
  • Fixed a high-redshift snapshot bug where stages would raise instead of be skipped if a particular particle type was missing (e.g. ptype-specific properties raising if no stars, when the stage already handles no stars internally).

General

  • Updated log statements to be more descriptive
  • Tidied log statements

v0.9.2.1

Choose a tag to compare

@jp-duminy jp-duminy released this 07 Sep 12:41

v0.9.2.1 is a minor improvement patch to v0.9.2.

Moved the local densities function to OctaviusAnalyser. This fixes it being a pipeline function which depended on MPI, and is a more sensible option as the function was always operating entirely at group level.
Fixed typos in documentation.
Updated some docstrings.

v0.9.2

Choose a tag to compare

@jp-duminy jp-duminy released this 05 Sep 16:35

Octavius v0.9.2 brings a range of upgrades and quality-of-life improvements to the beta release.

New Simulations Supported

  • Added support for SWIFT-EAGLE.
  • Added support for SWIFT-COLIBRE.
  • Added support for TNG.

New Halo Catalogues Supported

  • Added support for HBT-HERONS (SWIFT only).
  • Added support for SUBFIND (TNG only).

Additions

  • Added the ability for users to configure the FOF6D gas criterion.
  • Allowed users to override FOF6D substructure assignments.
  • Implemented post-config initialisation checks to ensure the config will not crash deep into a run.
  • Added a quiet mode to suppress non-essential terminal output.
  • Minor codebase-wide optimisations here and there.
  • Added snapshot file sizes to the initialisation message.

Modifications

  • String config fields are now uppercase by default (autocapitalised at instantiation).
  • Updated some config names to be more informative.
  • Further modularised the snapshot readers to make adding new readers very simple and trivial.
  • Updated some property dataset names which did not match the standard convention.
  • Fixed minor typos in documentation.

Bug Fixes

  • Fixed a bug where SWIFT-KIARA snapshots attempted to read the wrong dataset.
  • Fixed a bug where only the quintic kernel could be selected for photometry.
  • Fixed a bug where certain permutations of pipeline stages could result in MPI rank desynchronisation crashes.

v0.9.1.4

Choose a tag to compare

@jp-duminy jp-duminy released this 31 Aug 21:45

Day 1 patch for the beta release.

  • Fixed bugs listed in #20
  • Added EAGLE/COLIBRE SWIFT readers
  • Optimisations and modularisation of the readers, moving to an ABC instead of direct inheritance
  • Testing suite now generates the test snapshots in the tmp factory rather than relying on existing assets

v0.9.1.3

Choose a tag to compare

@jp-duminy jp-duminy released this 30 Aug 10:23

Dummy release to fix PyPi deployment.

v0.9.1.2

Choose a tag to compare

@jp-duminy jp-duminy released this 30 Aug 10:14

Minor updates to documentation and package structure.

  • Explicitly declared the .yaml files as data files in pyproject.toml
  • Fixed some typos and strange phrasing in documentation/API.

v0.9.1.1

Choose a tag to compare

@jp-duminy jp-duminy released this 29 Aug 22:07

Minor release for documentation and citations.

  • Uploaded Octavius to Zenodo
  • Added CITATION.cff file
  • Added links to documentation in repository

v0.9.1

Choose a tag to compare

@jp-duminy jp-duminy released this 29 Aug 21:26

Octavius v0.9.1 brings documentation and general QoL improvements.

  • Added readthedocs (furo theme)
  • Added example scripts
  • Added default arguments to the config so it can be manually typed in scripts
  • Moved config.yaml inside /octavius so octavius init will work
  • Refactored the validation suite to be more friendly to new devs
  • Updated README and CONTRIBUTING
  • Removed intermediate directory creation since only one log is created
  • Fixed some docstrings

v0.9.0 - Octavius Beta Release

Choose a tag to compare

@jp-duminy jp-duminy released this 25 Aug 18:55

Beta release for the package now known as Octavius.

Octavius is now beta-release ready. The code in its current state has been tested and I am satisfied it is ready to ship; I am hoping any users could find the bugs I will inevitably have failed to spot, and that people enjoy what they find.

  • Tidied the codebase (docstrings, code comments)
  • Added a package banner and terminal UI
  • Added more API functionality (particularly from the command line)
  • Added a licence, README, CONTRIBUTING
  • Added more code comments
  • Renamed package to Octavius so we can claim a PyPi package
  • Added timings to the analyse_snapshot function (formerly run_octavian)