diff --git a/docs/source/conf.py b/docs/source/conf.py
index ae8bfe6b5..834c47a40 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -27,7 +27,7 @@ except ImportError:
MOCK_MODULES = ['numpy', 'numpy.polynomial', 'numpy.polynomial.polynomial',
'numpy.ctypeslib', 'scipy', 'scipy.sparse', 'scipy.interpolate',
'scipy.integrate', 'scipy.optimize', 'scipy.special',
- 'scipy.stats', 'h5py', 'pandas', 'uncertainties',
+ 'scipy.stats', 'h5py', 'pandas', 'uncertainties', 'matplotlib',
'matplotlib.pyplot','openmoc', 'openmc.data.reconstruct']
sys.modules.update((mod_name, MagicMock()) for mod_name in MOCK_MODULES)
@@ -76,9 +76,9 @@ copyright = u'2011-2017, Massachusetts Institute of Technology'
# built documents.
#
# The short X.Y version.
-version = "0.9"
+version = "0.10"
# The full version, including alpha/beta/rc tags.
-release = "0.9.0"
+release = "0.10.0"
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
diff --git a/docs/source/pythonapi/capi.rst b/docs/source/pythonapi/capi.rst
index 3c6300bb6..f35823399 100644
--- a/docs/source/pythonapi/capi.rst
+++ b/docs/source/pythonapi/capi.rst
@@ -1,6 +1,6 @@
----------------------------------------------------
-:data:`openmc.capi` -- Python bindings to the C API
----------------------------------------------------
+--------------------------------------------------
+:mod:`openmc.capi` -- Python bindings to the C API
+--------------------------------------------------
.. automodule:: openmc.capi
@@ -12,25 +12,25 @@ Functions
:nosignatures:
:template: myfunction.rst
- openmc.capi.calculate_volumes
- openmc.capi.finalize
- openmc.capi.find_cell
- openmc.capi.find_material
- openmc.capi.hard_reset
- openmc.capi.init
- openmc.capi.iter_batches
- openmc.capi.keff
- openmc.capi.load_nuclide
- openmc.capi.next_batch
- openmc.capi.num_realizations
- openmc.capi.plot_geometry
- openmc.capi.reset
- openmc.capi.run
- openmc.capi.run_in_memory
- openmc.capi.simulation_init
- openmc.capi.simulation_finalize
- openmc.capi.source_bank
- openmc.capi.statepoint_write
+ calculate_volumes
+ finalize
+ find_cell
+ find_material
+ hard_reset
+ init
+ iter_batches
+ keff
+ load_nuclide
+ next_batch
+ num_realizations
+ plot_geometry
+ reset
+ run
+ run_in_memory
+ simulation_init
+ simulation_finalize
+ source_bank
+ statepoint_write
Classes
-------
@@ -40,9 +40,9 @@ Classes
:nosignatures:
:template: myclass.rst
- openmc.capi.Cell
- openmc.capi.EnergyFilter
- openmc.capi.MaterialFilter
- openmc.capi.Material
- openmc.capi.Nuclide
- openmc.capi.Tally
+ Cell
+ EnergyFilter
+ MaterialFilter
+ Material
+ Nuclide
+ Tally
diff --git a/docs/source/releasenotes.rst b/docs/source/releasenotes.rst
index d647f1ff3..4cacd4a7f 100644
--- a/docs/source/releasenotes.rst
+++ b/docs/source/releasenotes.rst
@@ -1,59 +1,38 @@
.. _releasenotes:
-==============================
-Release Notes for OpenMC 0.9.0
-==============================
+===============================
+Release Notes for OpenMC 0.10.0
+===============================
.. currentmodule:: openmc
-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.
-
-.. 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.
+This release of OpenMC includes several new features, performance improvements,
+and bug fixes compared to version 0.9.0. Notably, a C API has been added that
+enables in-memory coupling of neutronics to other physics fields, e.g., burnup
+calculations and thermal-hydraulics. The C API is also backed by Python bindings
+in a new :mod:`openmc.capi` package. Users should be forewarned that the C API
+is still in an experimental state and the interface is likely to undergo changes
+in future versions.
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::
+- To indicate that nuclides in a material should be treated such that elastic
+ scattering is isotropic in the laboratory system, there is a new
+ :attr:`Material.isotropic` property::
- energy_filter = openmc.EnergyFilter([0.0, 0.625, 4.0, 1.0e6, 20.0e6])
+ mat = openmc.Material()
+ mat.add_nuclide('H1', 1.0)
+ mat.isotropic = ['H1']
-- 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.::
+- The initializers for :class:`openmc.Intersection` and :class:`openmc.Union`
+ now expect an iterable.
- plot.colors = {
- fuel: 'yellow',
- water: 'blue'
- }
+- Auto-generated unique IDs for classes now start from 1 rather than 10000.
-- ``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.
+.. attention:: This is the last release of OpenMC that will support Python
+ 2.7. Future releases of OpenMC will require Python 3.4 or later.
-------------------
System Requirements
@@ -69,69 +48,34 @@ problem at hand (mostly on the number of nuclides and tallies in the problem).
New Features
------------
-- 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`
+- Rotationally-periodic boundary conditions
+- C API (with Python bindings) for in-memory coupling
+- Improved correlation for Uranium enrichment
+- Support for partial S(a,b) tables
+- Improved handling of autogenerated IDs
+- Many performance/memory improvements
---------
Bug Fixes
---------
-- 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
+- 937469_: Fix energy group sampling for multi-group simulations
+- a149ef_: Ensure mutable objects are not hashable
+- 2c9b21_: Preserve backwards compatibility for generated HDF5 libraries
+- 8047f6_: Handle units of division for tally arithmetic correctly
+- 0beb4c_: Compatibility with newer versions of Pandas
+- f124be_: Fix generating 0K data with openmc.data.njoy module
+- 0c6915_: Bugfix for generating thermal scattering data
+- 61ecb4_: Fix bugs in Python multipole objects
-.. _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
+.. _937469: https://github.com/mit-crpg/openmc/commit/937469
+.. _a149ef: https://github.com/mit-crpg/openmc/commit/a149ef
+.. _2c9b21: https://github.com/mit-crpg/openmc/commit/2c9b21
+.. _8047f6: https://github.com/mit-crpg/openmc/commit/8047f6
+.. _0beb4c: https://github.com/mit-crpg/openmc/commit/0beb4c
+.. _f124be: https://github.com/mit-crpg/openmc/commit/f124be
+.. _0c6915: https://github.com/mit-crpg/openmc/commit/0c6915
+.. _61ecb4: https://github.com/mit-crpg/openmc/commit/61ecb4
------------
Contributors
@@ -139,14 +83,19 @@ Contributors
This release contains new contributions from the following people:
+- `Brody Bassett `_
- `Will Boyd `_
+- `Guillaume Giudicelli `_
+- `Brittany Grayson `_
- `Sterling Harper `_
-- `Qingming He <906459647@qq.com>`_
- `Colin Josey `_
- `Travis Labossiere-Hickman `_
- `Jingang Liang `_
+- `Alex Lindsay `_
+- `Johnny Liu `_
- `Amanda Lund `_
+- `April Novak `_
- `Adam Nelson `_
+- `Jose Salcedo Perez `_
- `Paul Romano `_
- `Sam Shaner `_
-- `Jon Walsh `_
diff --git a/openmc/__init__.py b/openmc/__init__.py
index 13dac05e7..9b13fa692 100644
--- a/openmc/__init__.py
+++ b/openmc/__init__.py
@@ -32,4 +32,4 @@ from . import examples
# Import a few convencience functions that used to be here
from openmc.model import get_rectangular_prism, get_hexagonal_prism
-__version__ = '0.9.0'
+__version__ = '0.10.0'
diff --git a/src/constants.F90 b/src/constants.F90
index 3968781e9..331a644f0 100644
--- a/src/constants.F90
+++ b/src/constants.F90
@@ -9,7 +9,7 @@ module constants
! OpenMC major, minor, and release numbers
integer, parameter :: VERSION_MAJOR = 0
- integer, parameter :: VERSION_MINOR = 9
+ integer, parameter :: VERSION_MINOR = 10
integer, parameter :: VERSION_RELEASE = 0
integer, parameter :: &
VERSION(3) = [VERSION_MAJOR, VERSION_MINOR, VERSION_RELEASE]
diff --git a/src/output.F90 b/src/output.F90
index d09beda1b..f9660638a 100644
--- a/src/output.F90
+++ b/src/output.F90
@@ -79,7 +79,7 @@ contains
' Copyright | 2011-2017 Massachusetts Institute of Technology'
write(UNIT=OUTPUT_UNIT, FMT=*) &
' License | http://openmc.readthedocs.io/en/latest/license.html'
- write(UNIT=OUTPUT_UNIT, FMT='(11X,"Version | ",I1,".",I1,".",I1)') &
+ write(UNIT=OUTPUT_UNIT, FMT='(11X,"Version | ",I1,".",I2,".",I1)') &
VERSION_MAJOR, VERSION_MINOR, VERSION_RELEASE
#ifdef GIT_SHA1
write(UNIT=OUTPUT_UNIT, FMT='(10X,"Git SHA1 | ",A)') GIT_SHA1