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 decorator.py 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] Other ^^^^^ - 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 :meth:`~hyperion.model.Model.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 :meth:`~hyperion.model.Model.read`. [#78] API Changes ^^^^^^^^^^^ - When using the monochromatic radiative transfer mode, users should now use the :meth:`~hyperion.conf.PeeledImageConf.set_wavelength_index_range` method instead of :meth:`~hyperion.conf.PeeledImageConf.set_wavelength_range`. [#78] 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 :meth:`~hyperion.model.ModelOutput.get_sed` and :meth:`~hyperion.model.ModelOutput.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 :doc:`important/important`. - Added an option to specify the minimum (relative) radial cell spacing for the :class:`~hyperion.model.AnalyticalYSOModel` class. - Fixed bug that prevented users from setting the grid manually with the :class:`~hyperion.model.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 :meth:`~hyperion.model.Model.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 :class:`~hyperion.densities.AlphaDisk` class, and added definitions of the scaleheight for :class:`~hyperion.densities.AlphaDisk` and :class:`~hyperion.densities.FlaredDisk`. - Improve the reliability of the configure script. 0.9.2 (2013-08-16) ------------------ New Features ^^^^^^^^^^^^ - :meth:`~hyperion.model.ModelOutput.get_sed` and :meth:`~hyperion.model.ModelOutput.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 :doc:`dust/dust` - It is now possible to read in previous models completely, including the density structure, geometry, sources, dust, and configuration, using the :meth:`~hyperion.model.Model.read` method. In addition, new methods individual methods :meth:`~hyperion.model.Model.use_sources`, :meth:`~hyperion.model.Model.use_image_config`, :meth:`~hyperion.model.Model.use_run_config`, and :meth:`~hyperion.model.Model.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, :func:`~hyperion.model.helpers.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, :func:`~hyperion.model.helpers.tau_to_radius`, is available to compute, for spherical polar grids, the optical depth from infinity to a given radius. Improvements ^^^^^^^^^^^^ - 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 1.8.0.dev - 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 Improvements ^^^^^^^^^^^^ - Made deps/fortran/install.py 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.