4.2. Release Notes for ARMI 0.7

Here you will find the release notes for previous ARMI releases.

4.2.1. ARMI v0.7.0

Release Date: 2026-10-30

This was the biggest ARMI release in years. The materials in ARMI were completely over-hauled; from the underlying code to cleaning up and validating all the material data. The team also resolved over 20 bugs, and ARMI was releasing with no open bug tickets. And the armi.testing package is now in stable place, with a full collection of testing modules and test reactors.

4.2.1.1. Code Changes, Features

  1. (PR#2472) Adding Cinder 63 energy group structure

  2. (PR#2494) Updating consistent nuclide treatment

  3. (PR#2507) Refactoring the ARMI materials to be based on matProps

  4. (PR#2515) Adding CircleHoledCircle shape

  5. (PR#2517) Support FilletedHexagon in HexBlock.getWettedPerimeter

  6. (PR#2521) Move material source summary table to Bookkeeping Plugin

  7. (PR#2531) Remove callReactorConstructionHook argument from db.load and loadOperator

  8. (PR#2532) Creating the armi.testing package

  9. (PR#2536) Reducing reliance on global nuclides

  10. (PR#2555) Improving setMaterialNamespaceOrder

  11. (PR#2558) Increasing test coverage - matProps loadAll exception

  12. (PR#2572) Adding a plugin hook for defining a material base class

  13. (PR#2574) Replacing sys.platform calls with a context.PLATFORM global variable

  14. (PR#2589) Updating default nuclide flags

  15. (PR#2596) Moving shared test_assemblies.py machinery to armi.testing

  16. (PR#2608) Moving downstream-imported test_blocks machinery to armi.testing

  17. (PR#2615) Cleaning up test_reactors imports

  18. (PR#2617) Removing _Mixture material from ARMI

  19. (PR#2642) Removing inefficiencies in Assembly initialization

  20. (PR#2646) Ignoring negative volume components in mass-weighted averaging

  21. (PR#2648) Removing child-related machinery from ArmiObject

  22. (PR#2654) Improving flexibility of CaseSuite.discover

  23. (PR#2669) Using a WatchedFileHandler for logging outputs

  24. (PR#2670) Describing standalone custom python materials

  25. (PR#2671) Makes Component directly subclass ArmiObject

  26. (PR#2699) Raising an error when an ISOTXS file is not found

  27. (PR#2702) Dropping support for Python 3.9 and 3.10

  28. (PR#2707) Move ArmiObject to its own file and make it an abstract class

  29. (PR#2714) Allowing for edge case where no new XS files are generated

4.2.1.2. Code Changes, Bugs and Fixes

  1. (PR#2514) Fixing issue with CartesianBlock.getPinCenterFlatToFlat

  2. (PR#2544) Reverting previous global nuclides change

  3. (PR#2575) Ensuring density and pseudoDensity match for custom materials

  4. (PR#2578) Removing unused check-inputs entrypoint

  5. (PR#2584) Fixing missing r+ DB mode

  6. (PR#2592) Fixing test smallHexReactor BP lattice

  7. (PR#2599) Fixing MultiIndexLocation.getGlobalCoordinates

  8. (PR#2604) Covering up a ruamel.yaml bug with zero values

  9. (PR#2607) Fixing Database.genTimeSteps for EOL time steps

  10. (PR#2610) Supporting Blueprint.dump without streams

  11. (PR#2612) Ensuring migrations are not applied when they are not needed

  12. (PR#2613) Redistribute pinNDens and detailedNDens through axial expansion

  13. (PR#2618) Fixing Database.mergeHistory for EOL and error time steps

  14. (PR#2623) Updating test function imports and names in our testing docs

  15. (PR#2625) Fixing Block.getNumPins when there are multiple clads around a pin

  16. (PR#2644) Fixing Material.getProperty for matProps properties

  17. (PR#2645) Documenting that expandTo conserves mass not number of atoms

  18. (PR#2647) Updating Assembly detailed number density when Core pitch changes

  19. (PR#2650) Removing numMoves parameter

  20. (PR#2653) Removing incorrect summarizePowerPeaking report

  21. (PR#2655) Ensuring nuclides and numberDensities are numpy arrays

  22. (PR#2661) Preserving full-core Cartesian block volumes on Core symmetry axes

  23. (PR#2665) Applying the ruamel max_depth shim to every yamlize class, not just Blueprints

  24. (PR#2679) Adding material modifications to Database.load

  25. (PR#2688) Fix bug in axial expander that allowed two YAML materials to appear the same

  26. (PR#2715) Avoiding writing block kgHM and kgFis params during DBload

  27. (PR#2716) Reading existing ISOTXS file if core.lib does not exist

4.2.1.3. Code Changes, Maintenance, or Trivial

  1. (PR#2485) Adding an author to the project

  2. (PR#2486) Speeding up unit tests

  3. (PR#2489) Speeding up unit tests again

  4. (PR#2490) Changing the order of the named parameters in armi.init

  5. (PR#2491) Adding MeV unit

  6. (PR#2493) Supporting Python 3.14

  7. (PR#2498) Stopping forked repos from running MacOS CI

  8. (PR#2499) Removing matProps dataSchema

  9. (PR#2500) Speeding up the slowest unit tests

  10. (PR#2502) Removing unnecessary warning

  11. (PR#2503) Reducing warnings from settings version and Composite.getComponent

  12. (PR#2506) Improving error handling in HexComponentsToCylConverter

  13. (PR#2508) Stop codecov.io from incorrectly failing the build

  14. (PR#2510) Improving error message in settings validation

  15. (PR#2516) Bump pypdf from 5.3.1 to 6.10.2

  16. (PR#2518) Bump jinja2 from 3.1.5 to 3.1.6

  17. (PR#2522) Moving 15 parameters out of ARMI

  18. (PR#2523) Clean up runtime warnings

  19. (PR#2524) Trying to stop codecov.io from failing the build

  20. (PR#2527) Cleanup reports

  21. (PR#2528) Renaming matProps.Material to MatPropsMaterial

  22. (PR#2529) Removing deprecated API endpoints

  23. (PR#2530) Removing classN_custom_isotopics

  24. (PR#2537) Trying to stop codecov.io from failing the build

  25. (PR#2540) Upgrading GH Actions dependencies to newer versions

  26. (PR#2546) Adding ArgumentDefaultsHelpFormatter to EntryPoint.parser

  27. (PR#2547) Lowering the priority of some settings-related log messages

  28. (PR#2548) Reducing warnings from B10 Block calculation

  29. (PR#2549) Removing pinned wxpython dependency for grids

  30. (PR#2552) Bump pypdf from 6.10.2 to 6.12.0

  31. (PR#2564) Removing exception logging on HexBlock.verifyBlockDims

  32. (PR#2567) Bump pypdf from 6.12.0 to 6.13.3

  33. (PR#2569) Adding unit tests for HexBlocks.setPinPowers()

  34. (PR#2579) Adding missing test case for matProps.loadAll()

  35. (PR#2585) Moving buildOperatorOfEmptyHexBlocks to armi.testing

  36. (PR#2586) Redesigning our codecov.io config

  37. (PR#2601) Adding in ruff setting D404

  38. (PR#2605) Making _geomOptions None by default

  39. (PR#2606) Bump pypdf from 6.13.3 to 6.14.2

  40. (PR#2626) Banning AM242 from nuclide flags

  41. (PR#2630) Improving warnings on negative DPA calculations

  42. (PR#2631) Bumping pypdf from 6.14.2 to 6.15.0

  43. (PR#2636) Making Composite.changeNDensByFactor safe for Components

  44. (PR#2637) Unpinning PyPDF

  45. (PR#2649) Removing unnecessary r-strings

  46. (PR#2652) Removing Composite.containsHeavyMetal()

  47. (PR#2663) Ensuring all CI workflows from forked repos run

  48. (PR#2672) Removing reference to very old shuffle file format

  49. (PR#2675) Adding code coverage to cacheCall

  50. (PR#2681) Cleaning up unused nucDir functions

  51. (PR#2682) Cleaning up unused function applyIsotopicsMix

  52. (PR#2683) Removing duplicate code in applyMaterialMassFracsToNumberDensities

  53. (PR#2690) Adding code coverage to the LatticePhysicsInterface

  54. (PR#2691) Cleaning up materials modification validation

  55. (PR#2694) Move recursive settings file search logs from extra to debug

  56. (PR#2695) Removing unused arg for DB compare CLI

  57. (PR#2698) Renaming Block Parameter puFrac to puHMFrac

  58. (PR#2704) Removing cluster-specific code from ARMI

4.2.1.4. Documentation-Only Changes

  1. (PR#2487) Starting version 0.7.0 release cycle

  2. (PR#2492) Updating license section of the pyproject.toml

  3. (PR#2519) Adding documentation for matProps

  4. (PR#2541) Attempting to fix GH Pages docs deploy

  5. (PR#2545) Fixing material doc header levels

  6. (PR#2554) Cleaning up simple typos in documentation

  7. (PR#2556) Adding context to depletion cycle settings

  8. (PR#2559) Cleaning up matProps test docstring

  9. (PR#2563) Removing “power user” langauge from docs

  10. (PR#2571) Unifying and improving multiple Entry Point documentation sections

  11. (PR#2588) Documenting lattice map format

  12. (PR#2595) Validating the PR correctly fills the SCR

  13. (PR#2598) Documenting physics parameters retained on shuffling

  14. (PR#2616) Adding responsible LLM guidelines to Docs

  15. (PR#2622) Getting ARMI docs building correctly

  16. (PR#2624) Attempting to speed up the docs build on GitHub

  17. (PR#2632) Increasing ARMI HTML and PDF documentation TOC depth

  18. (PR#2635) Adding and enforcing test function and class naming standards

  19. (PR#2639) Fixing hung GitHub Docs CI build

  20. (PR#2659) Fix incorrectly labeled implementations for R_ARMI_CMP_NUC and R_ARMI_CMP_GET_NDENS

  21. (PR#2666) Documenting the materialNamespaceOrder input setting

  22. (PR#2668) Fixing apt-get errors on CI that are killing the doc build

  23. (PR#2685) Adding new req R_ARMI_MAT_CUSTOM and clean up duplicate namespace reqs

  24. (PR#2696) Clarifying validBlockTypes setting in docstrings

  25. (PR#2701) Fixing code block formatting in inputs.rst

  26. (PR#2705) Improving highest-level ARMI architecture diagram

  27. (PR#2712) Cleaning up the top-level README

  28. (PR#2713) Improving User Documentation

  29. (PR#2718) Improving language for docs of Assembly “xs type”