From f5cc7994f70efab9bc733c49f6e5a3577f8dc96d Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 10 Apr 2017 22:14:11 -0500 Subject: [PATCH] Increment version number and add release notes --- docs/source/conf.py | 4 +- docs/source/releasenotes.rst | 160 +++++++++++++++++++++++------------ setup.py | 2 +- src/constants.F90 | 2 +- 4 files changed, 112 insertions(+), 56 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index f6e342880..c3434914b 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -74,9 +74,9 @@ copyright = u'2011-2017, Massachusetts Institute of Technology' # built documents. # # The short X.Y version. -version = "0.8" +version = "0.9" # The full version, including alpha/beta/rc tags. -release = "0.8.0" +release = "0.9.0" # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/docs/source/releasenotes.rst b/docs/source/releasenotes.rst index 3b96be7f8..d647f1ff3 100644 --- a/docs/source/releasenotes.rst +++ b/docs/source/releasenotes.rst @@ -1,30 +1,59 @@ .. _releasenotes: ============================== -Release Notes for OpenMC 0.8.0 +Release Notes for OpenMC 0.9.0 ============================== -This release of OpenMC includes a few new major features including the -capability to perform neutron transport with multi-group cross section data as -well as experimental support for the windowed multipole method being developed -at MIT. Source sampling options have also been expanded significantly, with the -option to supply arbitrary tabular and discrete distributions for energy, angle, -and spatial coordinates. +.. currentmodule:: openmc -The Python API has been significantly restructured in this release compared to -version 0.7.1. Any scripts written based on the version 0.7.1 API will likely -need to be rewritten. Some of the most visible changes include the following: +This release of OpenMC is the first release to use a new native HDF5 cross +section format rather than ACE format cross sections. Other significant new +features include a nuclear data interface in the Python API (:mod:`openmc.data`) +a stochastic volume calculation capability, a random sphere packing algorithm +that can handle packing fractions up to 60%, and a new XML parser with +significantly better performance than the parser used previously. -- ``SettingsFile`` is now ``Settings``, ``MaterialsFile`` is now ``Materials``, - and ``TalliesFile`` is now ``Tallies``. -- The ``GeometryFile`` class no longer exists and is replaced by the - ``Geometry`` class which now has an ``export_to_xml()`` method. -- Source distributions are defined using the ``Source`` class and assigned to - the ``Settings.source`` property. -- The ``Executor`` class no longer exists and is replaced by ``openmc.run()`` - and ``openmc.plot_geometry()`` functions. +.. caution:: With the new cross section format, the default energy units are now + **electronvolts (eV)** rather than megaelectronvolts (MeV)! If you + are specifying an energy filter for a tally, make sure you use + units of eV now. -The Python API documentation has also been significantly expanded. +The Python API continues to improve over time; several backwards incompatible +changes were made in the API which users of previous versions should take note +of: + +- Each type of tally filter is now specified with a separate class. For example:: + + energy_filter = openmc.EnergyFilter([0.0, 0.625, 4.0, 1.0e6, 20.0e6]) + +- Several attributes of the :class:`Plot` class have changed (``color`` -> + ``color_by`` and ``col_spec`` > ``colors``). :attr:`Plot.colors` now accepts a + dictionary mapping :class:`Cell` or :class:`Material` instances to RGB + 3-tuples or string colors names, e.g.:: + + plot.colors = { + fuel: 'yellow', + water: 'blue' + } + +- ``make_hexagon_region`` is now :func:`get_hexagonal_prism` +- Several changes in :class:`Settings` attributes: + + - ``weight`` is now set as ``Settings.cutoff['weight']`` + - Shannon entropy is now specified by passing a :class:`openmc.Mesh` to + :attr:`Settings.entropy_mesh` + - Uniform fission site method is now specified by passing a + :class:`openmc.Mesh` to :attr:`Settings.ufs_mesh` + - All ``sourcepoint_*`` options are now specified in a + :attr:`Settings.sourcepoint` dictionary + - Resonance scattering method is now specified as a dictionary in + :attr:`Settings.resonance_scattering` + - Multipole is now turned on by setting ``Settings.temperature['multipole'] = + True`` + - The ``output_path`` attribute is now ``Settings.output['path']`` + +- All the ``openmc.mgxs.Nu*`` classes are gone. Instead, a ``nu`` argument was + added to the constructor of the corresponding classes. ------------------- System Requirements @@ -40,44 +69,69 @@ problem at hand (mostly on the number of nuclides and tallies in the problem). New Features ------------ -- Multi-group mode -- Vast improvements to the Python API -- Experimental windowed multipole capability -- Periodic boundary conditions -- Expanded source sampling options -- Distributed materials -- Subcritical multiplication support -- Improved method for reproducible URR table sampling -- Refactor of continuous-energy reaction data +- Stochastic volume calculations +- Multi-delayed group cross section generation +- Ability to calculate multi-group cross sections over meshes +- Temperature interpolation on cross section data +- Nuclear data interface in Python API, :mod:`openmc.data` +- Allow cutoff energy via :attr:`Settings.cutoff` +- Ability to define fuel by enrichment (see :meth:`Material.add_element`) +- Random sphere packing for TRISO particle generation, + :func:`openmc.model.pack_trisos` +- Critical eigenvalue search, :func:`openmc.search_for_keff` +- Model container, :class:`openmc.model.Model` +- In-line plotting in Jupyter, :func:`openmc.plot_inline` +- Energy function tally filters, :class:`openmc.EnergyFunctionFilter` +- Replaced FoX XML parser with `pugixml `_ +- Cell/material instance counting, :meth:`Geometry.determine_paths` +- Differential tallies (see :class:`openmc.TallyDerivative`) +- Consistent multi-group scattering matrices - Improved documentation and new Jupyter notebooks +- OpenMOC compatibility module, :mod:`openmc.openmoc_compatible` --------- Bug Fixes --------- -- 70daa7_: Make sure MT=3 cross section is not used -- 40b05f_: Ensure source bank is resampled for fixed source runs -- 9586ed_: Fix two hexagonal lattice bugs -- a855e8_: Make sure graphite models don't error out on max events -- 7294a1_: Fix incorrect check on cmfd.xml -- 12f246_: Ensure number of realizations is written to statepoint -- 0227f4_: Fix bug when sampling multiple energy distributions -- 51deaa_: Prevent segfault when user specifies '18' on tally scores -- fed74b_: Prevent duplicate tally scores -- 8467ae_: Better threshold for allowable lost particles -- 493c6f_: Fix type of return argument for h5pget_driver_f +- c5df6c_: Fix mesh filter max iterator check +- 1cfa39_: Reject external source only if 95% of sites are rejected +- 335359_: Fix bug in plotting meshlines +- 17c678_: Make sure system_clock uses high-resolution timer +- 23ec0b_: Fix use of S(a,b) with multipole data +- 7eefb7_: Fix several bugs in tally module +- 7880d4_: Allow plotting calculation with no boundary conditions +- ad2d9f_: Fix filter weight missing when scoring all nuclides +- 59fdca_: Fix use of source files for fixed source calculations +- 9eff5b_: Fix thermal scattering bugs +- 7848a9_: Fix combined k-eff estimator producing NaN +- f139ce_: Fix printing bug for tallies with AggregateNuclide +- b8ddfa_: Bugfix for short tracks near tally mesh edges +- ec3cfb_: Fix inconsistency in filter weights +- 5e9b06_: Fix XML representation for verbosity +- c39990_: Fix bug tallying reaction rates with multipole on +- c6b67e_: Fix fissionable source sampling bug +- 489540_: Check for void materials in tracklength tallies +- f0214f_: Fixes/improvements to the ARES algorithm -.. _70daa7: https://github.com/mit-crpg/openmc/commit/70daa7 -.. _40b05f: https://github.com/mit-crpg/openmc/commit/40b05f -.. _9586ed: https://github.com/mit-crpg/openmc/commit/9586ed -.. _a855e8: https://github.com/mit-crpg/openmc/commit/a855e8 -.. _7294a1: https://github.com/mit-crpg/openmc/commit/7294a1 -.. _12f246: https://github.com/mit-crpg/openmc/commit/12f246 -.. _0227f4: https://github.com/mit-crpg/openmc/commit/0227f4 -.. _51deaa: https://github.com/mit-crpg/openmc/commit/51deaa -.. _fed74b: https://github.com/mit-crpg/openmc/commit/fed74b -.. _8467ae: https://github.com/mit-crpg/openmc/commit/8467ae -.. _493c6f: https://github.com/mit-crpg/openmc/commit/493c6f +.. _c5df6c: https://github.com/mit-crpg/openmc/commit/c5df6c +.. _1cfa39: https://github.com/mit-crpg/openmc/commit/1cfa39 +.. _335359: https://github.com/mit-crpg/openmc/commit/335359 +.. _17c678: https://github.com/mit-crpg/openmc/commit/17c678 +.. _23ec0b: https://github.com/mit-crpg/openmc/commit/23ec0b +.. _7eefb7: https://github.com/mit-crpg/openmc/commit/7eefb7 +.. _7880d4: https://github.com/mit-crpg/openmc/commit/7880d4 +.. _ad2d9f: https://github.com/mit-crpg/openmc/commit/ad2d9f +.. _59fdca: https://github.com/mit-crpg/openmc/commit/59fdca +.. _9eff5b: https://github.com/mit-crpg/openmc/commit/9eff5b +.. _7848a9: https://github.com/mit-crpg/openmc/commit/7848a9 +.. _f139ce: https://github.com/mit-crpg/openmc/commit/f139ce +.. _b8ddfa: https://github.com/mit-crpg/openmc/commit/b8ddfa +.. _ec3cfb: https://github.com/mit-crpg/openmc/commit/ec3cfb +.. _5e9b06: https://github.com/mit-crpg/openmc/commit/5e9b06 +.. _c39990: https://github.com/mit-crpg/openmc/commit/c39990 +.. _c6b67e: https://github.com/mit-crpg/openmc/commit/c6b67e +.. _489540: https://github.com/mit-crpg/openmc/commit/489540 +.. _f0214f: https://github.com/mit-crpg/openmc/commit/f0214f ------------ Contributors @@ -86,11 +140,13 @@ Contributors This release contains new contributions from the following people: - `Will Boyd `_ -- `Derek Gaston `_ - `Sterling Harper `_ +- `Qingming He <906459647@qq.com>`_ - `Colin Josey `_ +- `Travis Labossiere-Hickman `_ - `Jingang Liang `_ +- `Amanda Lund `_ - `Adam Nelson `_ - `Paul Romano `_ -- `Kelly Rowland `_ - `Sam Shaner `_ +- `Jon Walsh `_ diff --git a/setup.py b/setup.py index 5af8923d7..19b79709b 100755 --- a/setup.py +++ b/setup.py @@ -16,7 +16,7 @@ except ImportError: have_cython = False kwargs = {'name': 'openmc', - 'version': '0.8.0', + 'version': '0.9.0', 'packages': ['openmc', 'openmc.data', 'openmc.mgxs', 'openmc.model', 'openmc.stats'], 'scripts': glob.glob('scripts/openmc-*'), diff --git a/src/constants.F90 b/src/constants.F90 index c44896b31..bffd2173e 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -7,7 +7,7 @@ module constants ! OpenMC major, minor, and release numbers integer, parameter :: VERSION_MAJOR = 0 - integer, parameter :: VERSION_MINOR = 8 + integer, parameter :: VERSION_MINOR = 9 integer, parameter :: VERSION_RELEASE = 0 integer, parameter :: & VERSION(3) = [VERSION_MAJOR, VERSION_MINOR, VERSION_RELEASE]