This document summarizes changes to the codebase from different releases.


The CREDITS file has an updated list of contributors to the codebase.

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

  • Enables trident to work on Windows. (PR 136)

  • Fix API docs. (PR 160)

  • Update docs. (PR 175)

  • Fixes stable release of the code. (Issue 180)

Version 1.2.3 (March 18, 2020)

This is a bug fix release.


  • Move testing to circleci. (PR 109)

Bug Fixes

  • Allow access to find_outputs kwarg from make_compound_ray. (PR 126)

  • Fix periodic rays. (PR 125)

  • Be more careful about limiting size of line deposition array. (PR 106)

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

  • Add support for creating spectra in velocity space (PR 90)

  • Add ability to set wavelength limits to ‘auto’ (PR 87)

  • Add ability to make spectrum from data container (PR 91)

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 AbsorptionSpectrum and LightRay. 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_observables keyword to make_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 of SpectrumGenerator for more information.

  • Added an approximate flux_error field to output spectra, since many observational tools require its presence. See error_func() for more details.

  • Made min_tau a keyword to make_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_type with sampling_type to 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.