Summary
This is the fourth feature release in the 4.x series.
It also contains important bugfixes as compared to yt 4.3.1 .
Ramses users are advised to read the dedicated section bellow in detail, as this release contains 3 fixes marked as breaking changes.
There are no other intended breaking changes.
Python 3.10.3 to 3.13 is supported.
How to upgrade
To upgrade from PyPI, run
python -m pip install --upgrade yt
or, with conda
conda update --channel conda-forge yt
π Highlights
- the frontend previously known as boxlib was renamed to AMReX
- this release contains a brand new frontend for Parthenon datasets. Thanks
to @pgrete and @forrestglines. - many great improvements regarding projections, slices, and interpolations for SPH datasets, thanks to @nastasha-w
- off-axis projections are now supported
- improved convergence with grid resolution
- improved mass conservation
- fixed a critical bug where column densities estimates were incorrect by a factor x3
New features
#4707 Add override_bins to data_container.profile, by @chrishavlin
#4717 Access output in timeseries by its time or redshift, by @cphyc
#4732 Allow cell_widths and nproc > 1 for load_uniform_grid, by @chrishavlin
#4740 Enable quiver callback for geographic geometries, by @chrishavlin
#4762 Add check for finite values in extrema, by @chrishavlin
#5001 Support line-of-sight fields for particle types, by @jzuhone
AMR frontends
#4734 Read AMR domains lazily, by @cphyc
SPH frontends
#4696 Allow names for the sph particle type other than "io" in the stream frontend, by @jzuhone
#4939 Sph projections, slices, gridding: backend and off-axis, by @nastasha-w
π Bug fixes
#4728 Fix auto-reports for bleeding edge ci, by @neutrinoceros
#4782 Updates for gamer sr fields, by @jzuhone
#4783 Ray object dl for sph data: interpolate kernel table for (b/hsml)**2 instead of b/hsml, by @nastasha-w
#4872 Always use the coordinate system normal for computing angular momentum components for particles, by @jzuhone
#4875 Create duplicate of mpi communicator, to avoid double comm.free, by @reuterk
#4877 Reduce rendered images without considering opacity, by @biboyd
#4882 Update qt backend entries in backend_specs, by @chrishavlin
#4891 Avoid resourcewarnings in the amrex frontend, by @yut23
#4893 Fix geographic coords convert_to_cartesian with units, by @chrishavlin
#4894 Only compile fixed_interpolator.cpp once, by @yut23
#4898 Fix bleeding-edge build script, by @yut23
#4904 Move field resolution inside conditional., by @matthewturk
#4920 Fix deprecated implicit casting of arrays with ndim>0 to int scalar, by @neutrinoceros
#4930 Require numpy 2.0.0 (stable) at build time, by @neutrinoceros
#4945 Fix memory leakage, by @cindytsai
#4950 Skip a flaky test on windows, by @neutrinoceros
#4970 Fix indexing error in fill_region_float, by @chrishavlin
#4980 Adjust platform_dep.h for recent msvs versions, by @chrishavlin
#4981 Fix orientation of colorbar in multiplanel plot, by @xshaokun
#5000 Ensure ytslice.coord has units, by @chrishavlin
#5008 Hotfix unsolvable type-checking requirements, by @neutrinoceros
#5014 Remove unused north_vector in off_axis_projection example, by @chrishavlin
#5028 Stop using deprecated urllib.request.fancyurlopener
, by @barneygale
ποΈ Frontend-specific changes
AMRex
#4845 Rename boxlib frontend as amrex, by @henrynjones
#4908 Add support for molecular fields (amrex), by @simonguichandut
#4994 Fix machnumber field spelling in amrex frontend for castro, by @zingale
#4914 Drop unused and duplicated parsing logic in amrex frontend, by @neutrinoceros
#4943 Fix loading of amrex datasets with ~
in the filename, by @yut23
AMRVac
#4937 AMRVac: variable he abundance, by @jordidj
ART
#4929 Ensure type safety in a call to np.logspace, by @neutrinoceros
CF_Radial
#4915 Add check for sub_conventions for cfradial, by @chrishavlin
#5043 Cf_radial: fix deprecated dims access, add pytest tests with mock ds, by @chrishavlin
#5048 Switch xradar pin to arm-pyart pin in tests, by @chrishavlin
Enzo-E
#4932 Add support for enzo-e simulations with 0 ghost zones, by @mabruzzo
Flash
#5019 Better logic for detection of particle handle for checkpoint files, by @jzuhone
GAMER
#4739 Support for cosmic ray fields in GAMER, by @jzuhone
Idefix
#4822 Support installing yt_idefix
as pip install yt[idefix]
; plug it in docs, by @neutrinoceros
Parthenon
#4323 Add parthenon
frontend, by @pgrete
Ramses
#4720 Ramses-speedup, by @cphyc
#4736 Fast seek through file, by @cphyc
#4878 Make hilbert intersection faster, by @cphyc
#4879 Correct errors in capital letter, by @Lenoble-lab
#4907 Make sure fields are read in the order they appear in the file, by @cphyc
#4938 Ramses: allow reading datasets with slightly broken records., by @cphyc
#4706 Simplify handling of conformal birth times in ramses, by @cphyc
Change in the way particle times are computed. The precision of the conversion from conformal time to physical time has been increased and is now consistent everywhere. This will result in different formation times when using cosmological simulation. In addition, if birth_XXXXX.outYYYYY files are detected, they will be read to obtain particle birth times.
#4817 Fix missing mu in temperature calculation ramses, by @V-Nathir
Change in the definition of the ('gas', 'temperature')
field. The temperature field was erroneously returning ("gas", "temperature_over_mu")
.
#4843 Add support for self-shielding in heating/cooling rates calculation for Ramses, by @cphyc
Change in the way cooling tables are used. If "self-shielding" is detected from the namelist or is set by the user with ds=yt.load("output_12345", self_shielding=True)
, the hydrogen number density used to obtain cooling, heating and
Rockstar
#4661 Read rockstar members, by @cphyc
Swift
#4921 Fix compatibility issues with newest versions of swift, by @smsutherland
Tipsy
#4964 Tipsy, reading just smoothing length, by @chrishavlin
#4884 Fix tipsy file handler opening, by @matthewturk
#4885 Tipsy use max_rows instead of skip_footer for ascii aux read, by @chrishavlin
π Performance
#4525 Add a few bitarray functions and tests, by @matthewturk
#4741 Use stamping approach to deposit off-axis cells, by @cphyc
#5018 Release the GIL in cylindrical pixelizer, by @chrishavlin
π Refactors
#4537 Refactor ParticleProjectionPlot
for consistency with ProjectionPlot
, by @neutrinoceros
#4733 Refactor usage of numpy.random
legacy api, by @neutrinoceros
#4940 Explicitly set strict flag in zip
calls (enforce B905
), and ignore UP038
, by @neutrinoceros
#4974 Enable flake8-type-checking
ruleset, by @neutrinoceros
π Documentation
#4418 Document pytest-mpl
update workflow, by @neutrinoceros
#4901 Some spelling fixes, by @zingale
#4925 Replace Boxlib with AMReX references in the docs, by @chrishavlin
#4955 Added note that answer tests are currently run with nose, by @nastasha-w
#5033 Fix docs for annotate_contour, by @zingale
𧩠Building
#4888 Build macos amr64 wheels without cross-compiling, by @neutrinoceros
#4905 Exclude Cython generated .c
and .cpp
files from build artifacts, by @neutrinoceros
#4909 Minimally test wheels and sdist, by @neutrinoceros
#4911 Fix segfault with manylinux2014
, by @yut23
#4913 Run pytest on wheels and sdist, by @yut23
#4941 Make ipywidgets/IPython optional dependencies again, by @neutrinoceros
#4947 Switch to stable setuptools
build backend, by @neutrinoceros
#4948 Fix compatibility with Cython
3.1, by @neutrinoceros
#4949 Cleanup cibuildwheel
configuration and move it to pyproject.toml
, by @neutrinoceros
#4973 Enable cp313 wheels, by @neutrinoceros
#4979 Drop support for python 3.9, by @neutrinoceros
#5023 Bump cibuildwheel to 2.21.3, by @neutrinoceros
π€ Testing
#4956 New prefix for images produced in testing: baseline_ or thispr_, by @nastasha-w
#4978 Add PEP723 metadata to test helper script, by @neutrinoceros
#4983 Move dev-only dependencies to requirements files, by @neutrinoceros
#5021 Add CPython 3.13 to regular test matrix, by @neutrinoceros
#5036 Add image tests for cylindrical pixelization of a box with rmin>0, by @neutrinoceros
#5042 Pin xradar<0.8.0 in tests, by @chrishavlin
Other changes
#4794 Upgrade mypy and type-check extras, by @neutrinoceros
#4868 Migrate formatting from black to ruff-format, by @neutrinoceros
Issues resolved
#4044 Future incompatibility with Cython 3.1, by @neutrinoceros
#4054 Rich display is broken on recent version of IPython, by @cphyc
#4278 Fails to build: internal_error, by @mcepl
#4330 Load_uniform_grid with nprocs>1 and cell_widths, by @chrishavlin
#4356 Implement vector callbacks for geogrpahic coords, by @chrishavlin
#4382 Multiplot_export_to_mpl gets colorbar orientation wrong, by @zingale
#4721 Automatic issues for nightly failures are broken, by @neutrinoceros
#4748 Switching from black to ruff-format ?, by @neutrinoceros
#4749 How should we handle python 3.10 becoming our oldest supported version ?, by @neutrinoceros
#4781 Possible bug in ray objects: calculation of projected lengths dl for non-grid/sph data, by @nastasha-w
#4788 Bug in projection plots for sph datasets, by @nastasha-w
#4871 Volume rendering multiple fields with mpi, by @biboyd
#4880 Some ramses fields return different values depending on order of operations, by @V-Nathir
#4883 Only open auxilliary files for tipsy as needed, by @matthewturk
#4890 Resourcewarnings for unclosed files in boxlib frontend, by @yut23
#4896 Non-isolated builds are broken, by @neutrinoceros
#4910 Segault on manylinux2014 image, by @neutrinoceros
#4918 Deprecation warning in gdf (and maybe more?), by @chrishavlin
#4924 Docs builds are failing, by @neutrinoceros
#4928 Incorrect parameter sanitation to np.logspace, by @yohad
#4954 Nose testing image comparison: label which image is which?, by @nastasha-w
#4972 Building fails on windows-latest
, by @neutrinoceros
#4976 Can we remove dev-only extra targets ?, by @neutrinoceros
#4977 Can we drop support for python 3.9 now ?, by @neutrinoceros
#4991 Remove duplicate functions in two sph backend prs, by @nastasha-w
#5022 yt fails to build against uv-managed python binaries, by @neutrinoceros
#5027 urllib.request.urlopener
is deprecated, by @barneygale
#5041 Failing to load pyart
, by @neutrinoceros
#5044 Unpin xradar in tests when possible, by @chrishavlin
#5047 Failing nosetests (failed to decode variable 'time'), by @chrishavlin
Full Changelog: yt-4.3.1...yt-4.4.0