Repository navigation
Releases: jp-duminy/octavius
Release list
v0.9.3.1
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_hydrogenfor a new subroutine inproperties_local_environmentwhich computes diffuse HI and H2 masses (per #32 for the HI community). - Added
min_gas_per_galaxycriterion 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
strinstead ofpathlib.Pathobjects to functions, with internalPathcoercion (per #30). - Added unit tests to prevent the centre-of-mass bug rearing its ugly ahead again and any
Internalsunit 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
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
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
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
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
v0.9.1.2
v0.9.1.1
v0.9.1
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
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)