Skip to content

v0.15.0

Choose a tag to compare

@ilhamv ilhamv released this 11 Aug 13:03
· 33 commits to main since this release
7d29274

MC/DC 0.15 updates the model interface and framework around explicit Simulation instances, a unified Material model, and expanded neutron multigroup transport. These substantial changes are accompanied by more comprehensive User and Developer Guides covering the updated interface and framework architecture. The release also improves public API typing, Python-version testing, and release workflows. Users updating existing inputs should review the breaking interface changes listed below.

Changelog

Added

  • Add NeutronMultigroupData and hybrid neutron multigroup transport with material-local physical energy grids and energy-representation policies, together with the Material.multigroup() convenience interface, from [@ilhamv]
  • Add manually triggered unit and serial regression compatibility testing for Python 3.11, 3.12, and 3.14 while retaining Python 3.13 for automatic testing, from [@ilhamv]
  • Add PEP 561-compatible inline type information and strict Pyright checks for the public Python API, from [@ilhamv]

Changed

  • Breaking: Unify native and neutron multigroup materials under one non-polymorphic Material and runtime layout, replacing MaterialMG and the separate native and multigroup material structures, from [@ilhamv]
  • Group transport techniques under simulation.technique, from [@ilhamv]
  • Breaking: Encapsulate MC/DC model building and execution within an explicit mcdc.Simulation instance, replacing the global simulation state and interface from [@ilhamv]
  • Modernize and reorganize the documentation around distinct user, API reference, theory, project, and developer paths; adopt the PyData Sphinx Theme; and expand the architecture and extension guidance from [@ilhamv]
  • Move model-specific finalization into simulation compilation and reserve runtime preparation for framework-level packing and execution setup from [@ilhamv]
  • Move regression tests from the custom run.py harness to pytest-based collection and reporting from [@massimolarsen]
  • Breaking: Require Python 3.11 or newer and designate Python 3.13 as the primary automatic test version, from [@ilhamv]
  • Run Black and Pyright with Python 3.14 while keeping Black output compatible with every supported Python version, from [@ilhamv]
  • Adopt a three-month seasonal cycle for minor releases while continuing to publish patch releases as needed, from [@ilhamv]

Removed

  • Remove the legacy install.sh installation helper, from [@ilhamv]

PRs merged

  • Rename stale workflow and use shared organization workflow by @ilhamv in #476
  • Moved regression tests to pytest by @massimolarsen in #488
  • Encapsulate MC/DC models in explicit Simulation instances by @ilhamv in #490
  • Modernize MC/DC documentation and developer guide by @ilhamv in #494
  • Unify the material model and neutron multigroup transport by @ilhamv in #495
  • Make release for 0.15 by @ilhamv in #497
  • Release 0.15 by @ilhamv in #498

Full Changelog: v0.14.2...v0.15.0