==================== What's New in 0.13.1 ==================== .. currentmodule:: openmc ------- Summary ------- This release of OpenMC includes many bug fixes as well as improvements in geometry modeling, mesh functionality, source specification, depletion capabilities, and other general enhancements. The depletion module features a new transport operator, :class:`openmc.deplete.IndependentOperator`, that allows a depletion calculation to be performed using arbitrary one-group cross sections (e.g., generated by an external solver) along with a :class:`openmc.deplete.MicroXS` class for managing one-group cross sections. The track file generation capability has been significantly overhauled and a new :class:`openmc.Tracks` class was introduced to allow access to information in track files from the Python API. Support has been added for new ENDF thermal scattering evaluations that use mixed coherent/incoherent elastic scattering. ------------------------------------ Compatibility Notes and Deprecations ------------------------------------ - The ``openmc.deplete.Operator`` class has been renamed :class:`openmc.deplete.CoupledOperator`. - The ``openmc.deplete.ResultsList`` class has been renamed to :class:`openmc.deplete.Results` and no longer requires you to call the ``from_hdf5()`` method in order to create it; instead, you can directly instantiate it. - A few methods that represent k-effective have been renamed for the sake of consistency: - ``openmc.StatePoint.k_combined`` is now :attr:`openmc.StatePoint.keff` - ``openmc.deplete.ResultsList.get_eigenvalue`` is now :meth:`openmc.deplete.Results.get_keff` - The :class:`openmc.stats.SphericalIndependent` class, which used to accept a distribution for ``theta`` now accepts a distribution for ``cos_theta`` instead in order to more easily handle the common case of specifying a uniform spatial distribution over a sphere (also see the new :func:`openmc.stats.spherical_uniform` function). - If you are building OpenMC from source, note that several of our CMake options have been changed: ========== ====================== Old option New option ========== ====================== debug --- optimize --- profile OPENMC_ENABLE_PROFILE coverage OPENMC_ENABLE_COVERAGE openmp OPENMC_USE_OPENMP --- OPENMC_USE_MPI dagmc OPENMC_USE_DAGMC libmesh OPENMC_USE_LIBMESH ========== ====================== The ``debug`` and ``optimize`` options have been removed; instead, use the standard `CMAKE_BUILD_TYPE `_ variable. ------------ New Features ------------ - Two new composite surfaces: :class:`openmc.model.IsogonalOctagon` and :class:`openmc.model.CylinderSector`. - The :class:`~openmc.DAGMCUniverse` class now has a :attr:`~openmc.DAGMCUniverse.bounding_box` attribute and a :meth:`~openmc.DAGMCUniverse.bounding_region` method. - When translating a :class:`~openmc.Region` using the :meth:`~openmc.Region.translate` method, there is now an ``inplace`` argument. - The :class:`~openmc.Material` class has several new methods and attributes: - The :meth:`~openmc.Material.add_components` methods allows you to add multiple nuclides/elements to a material with a single call by passing a dictionary. - The :meth:`~openmc.Material.get_activity` method returns the activity of a material in Bq, Bq/g, or Bq/cm³. - The :meth:`~openmc.Material.remove_element` method removes an element from a material - The :meth:`~openmc.Material.get_nuclide_atoms` method gives the number of atoms of each nuclide in a material - All mesh classes now have a ``volumes`` property that provides the volume of each mesh element as well as ``write_data_to_vtk`` methods. - Support for externally managed MOAB meshes or libMesh meshes. - Multiple discrete distributions can be merged with the new :meth:`~openmc.stats.Discrete.merge` method. - The :func:`openmc.stats.spherical_uniform` function creates a uniform distribution over a sphere using the :class:`~openmc.stats.SphericalIndependent` class. - Univariate distributions in the :mod:`openmc.stats` module now have ``sample()`` methods. - An ``openmc_sample_external_source`` function has been added to the C API with a corresponding Python binding :func:`openmc.lib.sample_external_source`. - The track file generation capability has been completely overhauled. Track files now include much more information, and a new :class:`~openmc.Tracks` class allows access to track file information from the Python API and has a :meth:`~openmc.Tracks.write_to_vtk` method for writing a VTK file. Multiple tracks are now written to a single file (one per MPI rank). - A new :func:`openmc.wwinp_to_wws` function that converts weight windows from a ``wwinp`` file to a list of :class:`~openmc.WeightWindows` objects. - The new :meth:`openmc.EnergyFilter.from_group_structure` method provides a way of creating an energy filter with a group structure identified by name. - The :class:`openmc.data.Decay` class now has a :attr:`~openmc.data.Decay.sources` property that provides radioactive decay source distributions. - A :class:`openmc.mgxs.ReducedAbsorptionXS` class produces a multigroup cross section representing "reduced" absorption (absorption less neutron production from (n,xn) reactions). - Added support in the Python API and HDF5 nuclear data format for new ENDF thermal neutron scattering evaluations with mixed coherent elastic and incoherent elastic. - CMake now relies on ``find_package(MPI)`` for a more standard means of identifying an MPI compiler configuration. --------- Bug Fixes --------- - `Fix bug when a rotation matrix is passed to Halfspace.rotate `_ - `Fix bug for spherical mesh string repr `_ - `Fix package_data specification to include pyx files `_ - `Allow meshes with same ID to appear in multiple files `_ - `Fix overwritten variable in get_libraries_from_xsdata `_ - `Write output files to correct directory `_ - `Allow CMake to properly find third-party packages `_ - `Fix Region.from_expression when ")(" appears in specification `_ - `Move lost particle reset from finalize() to reset() `_ - `Minor typo fixes in test_lattice.py `_ - `Fix color assignment in Universe.plot `_ - `Several depletion-related fixes `_ - `Allow control of C++ standard used by compiler `_ - `Fix IO format documentation for surface source read/write `_ - `Make sure basis gets set in Plot.from_geometry `_ - `Improve robustness of torus distance calculation `_ - `Allow use of redundant fission when adjusting KERMA in from_njoy `_ - `Disable GNU extensions for CMake target `_ - `Two from_xml fixes `_ - `Fix for rare infinite loop when finding cell `_ - `Allow photon heating to be tallied by nuclide `_ - `Use UTF-8 encoding when reading dose coefficients `_ - `Fix a corner case in Region.from_expression `_ - `Fix bug in spherical and cylindrical meshes `_ - `Ensure weight window bounds are flattened when writing to XML `_ - `Fix for std::cout sync bug in output.cpp `_ - `Allow compiling against fmt v9 `_ - `Fix TimeFilter for small time intervals `_ ------------ Contributors ------------ - `David Andrs `_ - `Hunter Belanger `_ - `Helen Brooks `_ - `Rémi Delaporte-Mathurin `_ - `Joffrey Dorville `_ - `Christopher Fichtlscherer `_ - `Lewis Gross `_ - `Andrew Johnson `_ - `Kalin Kiesling `_ - `Amanda Lund `_ - `Richard Morrison `_ - `Patrick Myers `_ - `Adam Nelson `_ - `April Novak `_ - `Ethan Peterson `_ - `Gavin Ridley `_ - `Paul Romano `_ - `Jonathan Shimwell `_ - `Patrick Shriwise `_ - `Amelia Trainer `_ - `John Tramm `_ - `Bob Urberger `_ - `Olek Yardas `_