Version History

0.9.10 (2019-02-08)

  • Fixed compatibility with HDF5 1.10.x. [#188]
  • Simplify installation instructions, remove custom installer for Fortran dependencies, and remove CMake build system. [#206]
  • Fixed compatibility with latest version of h5py. [#201]
  • Fixed bug in method to truncate scattering matrix in dust properties. [#199]

0.9.9 (2017-08-28)

  • Added a workaround for a bug in ifort v16 that prevented compilation. [#190]
  • Improved the accuracy of the Wood and Reynolds (1999) forced first scattering algorithm for very small optical depths, and implemented the Baes et al (2016) composite biasing algorithm for forced first interaction. In addition, the Model.set_forced_first_scattering method has been renamed to Model.set_forced_first_interaction, and this method now optionally takes the algorithm to use (wr99 or baes16) and in the case of the baes16 algorithm, baes16_xi can be passed. [#189]
  • Improved the efficiency of monochromatic radiative transfer: instead of propagating photons until they are absorbed, photon packets are forced to scatter and their energy is lowered at every interaction by the albedo until the energy goes below a threshold. This threshold defaults to 1.e-10, but this can be changed using the energy_threshold argument to Model.set_monochromatic. [#158]
  • Remove bundled numpydoc and fix Python 3.6 compatibility. [#192]

0.9.8 (2016-09-27)

  • Refactored installation instructions to provide a more streamlined experience. [#161]
  • Fixed a severe bug in the set-up of AMR grids that caused photons to be terminated before escaping from grids in specific cases. [#167]
  • Fixed bug in ordering of axes for Cartesian and AMR grids for yt 3.x. [#168]
  • Add installation instructions for FreeBSD (thanks to Aaron Lauterer). [#173]
  • Fixed a bug that caused a VoronoiGrid initialized from another VoronoiGrid to not include the sparse neighbor information. [#177]
  • Check for NaNs when writing out dust or model HDF5 file. [#179]
  • Fix the installation script for dependencies to work with GCC 5. [#182]
  • Remove deprecated frequencies= argument from set_monochromatic (instead, the wavelengths= argument should be used to give the wavelengths in microns). [#183]
  • The set_wavelength_index_range should now take zero-based indices, consistent with the Python/Numpy convention. Note that this will break compatibility with previous scripts, so you will need to be sure to update calls to this method if you were using it. [#183]
  • Update bundled module. [#184]
  • Disabled computation of SEDs for inside observers, since the apertures are not truly circular. Users should instead set up images and then do photometry on them as appropriate. [#185]
  • The code base is now Python 3-compatible, and we no longer rely on 2to3. [#185]
  • Update installation instructions to mention conda as the preferred installation method. [#186]
  • Add workaround for a bug in HDF5 1.8 that caused issues with models that made use of filters. [#187]

0.9.7 (2015-08-22)

New features

  • Added support for on-the-fly filter convolution. [#119]
  • Power-law and Ulrich envelopes can now be used on cylindrical polar grids. [#136]
  • Provide a way to sample random positions inside Voronoi cells. [#134, #151]
  • Added the ability to load AMR grids from yt datasets. [#148]

Bug fixes

  • Correctly raise an error if photons are emitted outside the Voronoi grid. [#127]
  • Avoid issues with number of photons when reading in models. [#145]
  • Fix a bug that caused sublimation parameters to not be correctly read in. [#133]
  • Fixed Fortran dependencies install script.

API changes

  • set_aperture_range has been renamed to set_aperture_radii to emphasize that these are radii. [#132]


  • Internal refactoring of how spectra are gridded for raytracing to make it easier to implement Doppler-shifted spectra in future. [#126]
  • Optimizations to memory and disk usage for Voronoi grids. [#128, #154, #156]
  • Improvements to warnings and documentation. [#54, #98, #125]
  • Removed deprecated mctherm2hyperion script. [#144]

0.9.6 (2015-02-27)

Bug fixes

  • Fixed backward compatibility with files that don’t include d_min/d_max

0.9.5 (2015-02-17)

New features

  • Added an importer function, construct_octree, to convert a list of SPH particles into an Octree grid. [#67]
  • Addded support for Voronoi grids. Voronoi grids can be set via the ~hyperion.model.Model.set_voronoi_grid method, passing in the x, y and z coordinates of the sites as arguments. [#92]
  • Added the ability to make images that split up photons as a function of how many times they were scattered (using set_track_origin('scatterings')). [#99]
  • Added the ability to kill photons when scattered using set_kill_on_scatter, similarly to the existing set_kill_on_absorb. [#101]
  • Added the ability to use input files in ModelOutput.get_quantities. [#106]
  • Added the ability to control the interpretation of the specific energy passed to add_density_grid using the set_specific_energy_type argument. [#117]
  • Added the ability to use a grid from an HDF5 file on disk without reading it into the Python code, using use_grid_from_file. [#116]
  • Added support for cmake. [#112]
  • Image and SED objects now include attributes d_min and d_max that indicate the depth of the region used to contruct the image or SED. [#121]
  • Fixed a bug in the computation of the Rosseland mean opacity (it was in fact the Planck reciprocal mean opacity). Dust files have now been updated to version 2 to include both the Rosseland mean opacity and the Planck reciprocal mean opacity. [#123]

Bug fixes

  • Fixed a minor bug in the logic for killing photons that have had too many interactions. [#100]
  • Fixed a bug that meant that BipolarCavity instances could not be subtracted from AmbientMedium instances. [#106]

Other improvements

  • The to_yt() methods are now compatible with yt 3.x (3.0.1 and later recommended). [#113]
  • The uncertainties=True mode for get_sed and get_image has now been properly vectorized and should be faster by a factor of a few when requesting polarization results. [#114]

0.9.4 (2014-01-29)

New features

  • Image and SED groups now have a set_stokes option that allows users to specify whether to save Stokes componenets other than I. Prior to this version, all Stokes components were always saved, but this resulted in an unecessarily high memory usage in many cases, so the default is now set to False, and users have to explicitly set set_stokes(True) in order to save all Stokes components. [#61]
  • It is now possible to turn off the warnings that occur when photons are killed due to too many interactions, using the warn=True/False option for the set_max_interactions() method (and other similar methods). [#68]

Bug fixes

  • Fix Fortran dependency installer for gfortran 4.5 and earlier
  • Fixed a bug that caused models using the monochromatic radiative transfer settings to not be read in correctly by read(). [#78]

API Changes

0.9.3 (2013-11-14)

New features

  • For models that require many point sources with a common spectrum, a new source type (point source collection) is now available. To add a point source collection, use:

    source = m.add_point_source_collection()

    The source.luminosity attribute should be set to an array with as many elements as sources, and the source.position attribute should be set to a 2-d array where the first dimension matches source.luminosity, and with 3 elements in the second dimension (x, y, and z).

  • Sources can now be given names as strings, which can then be used as an argument to source_id in get_sed() and get_image() (when using photon tracking).

  • Improved documentation to explain better in which cases dust and total densities should be used. This is summarized in Important Notes.

  • Added an option to specify the minimum (relative) radial cell spacing for the AnalyticalYSOModel class.

  • Fixed bug that prevented users from setting the grid manually with the AnalyticalYSOModel class.

  • It is now possible to include multiple ambient mediums with different dust properties (this was limited to a single ambient medium property previously).

  • The add_density_grid() method can now be called with a grid view for all grid types (previously this was only possible for AMR grids).

  • Added dust classes to the API documentation.

  • Fixed a typo in the equation for the AlphaDisk class, and added definitions of the scaleheight for AlphaDisk and FlaredDisk.

  • Improve the reliability of the configure script.

0.9.2 (2013-08-16)

New Features

  • get_sed() and get_image() now return SED and Image objects that contain meta-data in addition to the data itself. For example, images contain information about the field of view (in physical/angular units, where appropriate), and information about the units is also included. The old syntax of wav, nufnu = m.get_sed(...) will still work, but the meta-data will not be accessible in those cases.

  • New library of dust models, accessible in Library of dust models

  • It is now possible to read in previous models completely, including the density structure, geometry, sources, dust, and configuration, using the read() method. In addition, new methods individual methods use_sources(), use_image_config(), use_run_config(), and use_output_config() allow more detailed control over reading in parameters from previous models.

  • It is now possible to force overwrite Hyperion output from the command-line using the -f option:

    hyperion -f input output

    or when using the individual fortran binaries:

    mpirun -n 8 hyperion_car_mpi -f input output

    This will likely be useful for users of computer clusters who don’t want a job to fail just because the output file already exists.

  • Regular Cartesian grids can now also be exported for viewing in yt (as was previously possible for AMR and Octree grids).

  • A new function, run_with_vertical_hseq(), is available to help with the calculation of vertical Hydrostatic equilibrium in disks. Note that this feature is still experimental and should be used with care.

  • A new function, tau_to_radius(), is available to compute, for spherical polar grids, the optical depth from infinity to a given radius.


  • PyFITS, PyWCS, and ATpy are no longer required for Hyperion. Instead, the Astropy package is now required as a dependency.
  • Updated download link for MPICH2
  • The rho_0 attribute for disks is now a property, not a method, and can be set by the user instead of the disk mass.
  • The documentation has been improved and fixed in places thanks to user feedback.
  • AnalyticalYSOModel instances are no longer ‘static’ once they have been written out (this means one can write out a model, change a parameter, and write out a new different model, which was not possible previously).
  • The Fortran code now reads in dust models faster because it computes all cumulative distribution functions more efficiently.
  • Statistics for killed photons are now kept for each iteration rather than just summing all of them.

Bug fixes

  • Fix compatibility with Numpy
  • Fix coverage testing for Python 3
  • Fixed an issue which caused temporary files to not be deleted after running tests.

API changes

  • The AnalyticalYSOModel.evaluate_optically_thin_radii() method has been removed.

0.9.1 (2012-10-26)

New Features

  • Updated hyperion2fits to extract binned images
  • Added wmax= option for AnalyticalYSOModel.set_cylindrical_grid_auto


  • Made deps/fortran/ script more robust to architecture, and to lack of zlib library.
  • Ensure that spectrum always gets converted to floating-point values
  • Give a more explicit error message if optical properties for dust are not set.

Bug fixes

  • Fixed bug that prevented BipolarCavity from being used
  • Ensure that get_quantities works even if no initial iterations were computed
  • Fix scattering for cases where P2=0. The code could sometimes crash if a mix of isotropic and non-isotropic dust was used (reported by M. Wolff).
  • Fix a bug that occurred when outputting multiple images with the depth option (reported and fixed by T. Bowers) [#21, #22]

0.9.0 (2012-07-27)

  • Initial public release.