Changelog
This document summarizes changes to the codebase from different releases.
Contributors
The CREDITS file has an updated list of contributors to the codebase.
Version 1.4.2 (February 19, 2025)
There were some bugfixes that were adopted in this new version and a few new features. Most notably, two related bugs were discovered in our primary dependency, yt, in terms of how particle-based datasets were being treated. For datasets involving SPH or SPH-like frontends (e.g., Gadget, Gizmo, AREPO, EAGLE), yt was underestimating the contribution of some fluid elements. The primary outcome for users of Trident is that if you were using Trident to generate absorption line spectra on particle-based datasets, the absorption features may have been underestimated by a factor of two to three. A minor related issue impacted the ProjectionPlot interface for particle-based codes in underresolved regions leading to less significant inaccuracies. Consequently, we highly recommend updating to the latest stable version of trident (1.4.2) and yt (4.4.0) to incorporate the fixes for these bugs. For more details on these yt bugs and their solutions, as well as the other changes to trident, please see the links below.
Enhancements
Bug Fixes
Fix yt ray bug for particle-based datasets. (yt issue 4781) (yt PR 4783)
Fix yt ProjectionPlot bug for particle-based datasets. (yt issue 4788) (yt PR 4939)
Do not limit number of components detected in absorption_spectrum_fit. (PR 195)
Update commands to address yt deprecations. (PR 201)
Fix “output array is read-only” bug. (PR 202)
Version 1.3 (August 23, 2022)
This is a bug fix release and updates Trident to using yt-4, which has a variety of improvements for Trident including full support for particle-based datasets. See yt 4.
Bug Fixes
Version 1.2.3 (March 18, 2020)
This is a bug fix release.
Enhancements
Move testing to circleci. (PR 109)
Bug Fixes
Version 1.2.2 (November 14, 2019)
This is a bug fix release.
Bug Fixes
Shift wavelength of velocity center to redshift from light ray solution (PR 102)
Version 1.2.1 (October 1, 2019)
This is a bug fix release.
Bug Fixes
Logging info doesn’t use correct units (PR 99)
Version 1.2 (September 19, 2019)
New Features
Bug Fixes
off by one error in subgrid index calculation (PR 85)
fixing error in _ion_mass (PR 81)
H_p0_number_density to default, H_number_density to alias (PR 78)
Implements a better way of calculating the redshift on the light ray (PR 71)
Assures that ion_fraction field reflects on-disk fields (PR 64)
Fix atomic data for Si II 1260 according to Morton 2003 (PR 43)
A check to avoid failure when no continuum absorbers were found in the ray (PR 39)
Auto-addition of H_nuclei_density to a LightRay when present in the base dataset (PR 39)
Adding max_box_fraction as a kwarg to make_compound_ray (PR 37)
Updated trident_path() to be OS Independent (PR 36)
simplify setting up ion fields using the “local” field type (PR 30)
split and join filenames using os.sep instead of assuming unix (PR 29)
updated oscillator strengths and gamma’s for Si II 1206 and Si III 1260 (PR 25)
Minor Enhancements
Calculating LOS velocity with relative velocities to account for bulk motion (PR 93)
Enabling use of output_absorbers_file kwarg in SpectrumGenerator (PR 58)
Switching imports from yt.analysis_modules to yt_astro_analysis (PR 55)
Enable passing in-memory LineDatabase to SpectrumGenerator (PR 42)
Added equivalent width calculation to line_observables_dict (PR 40)
Numerous documentation updates
Updates and fixes to testing
Version 1.1 (November 18, 2017)
Trident development has changed from mercurial to git, and the source has moved from bitbucket to github. This was done in recognition that more people interact with git/github than do with hg/bitbucket, as well as to follow our major dependency yt in making the same transition. All previous repository history (e.g., commits, versions, tags, etc.) is retained under this transition. For users operating on the development branch of Trident, you must re-install Trident in order to continue to get updates. The installation instructions were updated accordingly.
We totally rebuilt the testing interface to Trident, which includes more coverage in unit tests and answer tests over both grid-based and particle-based datasets. We now have continuous integration through Travis that tests the code daily and with each new pull request to assure consistent code results and to minimize bugs. For more information, see Testing.
Much of the original Trident codebase was developed in yt as the base classes
AbsorptionSpectrumandLightRay. We have now stripped these classes out of yt and moved them entirely into Trident for more flexibility, stability, and autonomy moving forward. This should not affect the user as these changes were behind the scenes.Added
store_observableskeyword tomake_spectrum()to store a dictionary of observable properties (e.g., tau, column density, and thermal_b) for each cell along a line of sight for use in post-processing. See source ofSpectrumGeneratorfor more information.Added an approximate
flux_errorfield to output spectra, since many observational tools require its presence. Seeerror_func()for more details.Made
min_taua keyword tomake_spectrum()to enable higher precision (although more time intensive) absorption line deposition.Added ability to specify an arbitrary noise vector with
add_noise_vector().A bugfix was made in yt to the temperature field for Gadget-based code outputs. The internal energy field was mistakenly being read in co-moving instead of physical units, which led to gas temperatures being low by a factor of (1+z). This is now resolved in yt dev and thus we recommend Trident users use yt dev until yt 3.5 stable is released.
Another bugfix was made in Trident dependency astropy to the convolve function, which is used in
apply_lsf(). This may cause slight backwards-incompatible changes when applying line spread functions to post-process spectra.Replaced internal instances of
particle_typewithsampling_typeto match similar yt conversion.
Version 1.0 (November 16, 2017)
Initial release. See our method paper for details.
Create absorption-line spectra for any trajectory through a simulated data set mimicking both background quasar and down-the-barrel configurations.
Reproduce the spectral characteristics of common instruments like the Cosmic Origins Spectrograph.
Operate across the ultraviolet, optical, and infrared using customizable absorption-line lists.
Trace simulated physical structures directly to spectral features.
Approximate the presence of ion species absent from the simulation outputs.
Generate column density maps for any ion.
Provide support for all major astrophysical hydrodynamical codes.