4.2. Release Notes for ARMI 0.6

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

4.2.1. ARMI v0.6.4

Release Date: 2026-03-25

This was a very short-burn release. The biggest new feature is the addition of matProps, the materials library. This tool allows developers to flexibly define materials with properties in several flexible ways. This release also included a lot of clean up work, such as moving several parameters and settings out of ARMI. The HistoryTracker EOL interaction was optimized. And a block converter was added for mixed-pin assemblies.

4.2.1.1. Code Changes, Features

  1. (PR#2453) Adding matProps: a material library

  2. (PR#2405) Remove ruamel.yaml dependency pin maximum

  3. (PR#2436) Optimizing the HistoryTracker EOL interaction

  4. (PR#2442) Defaulting the Database to read mode

  5. (PR#2477) Adding a block converter for mixed pin assemblies

  6. (PR#2478) Checking for unrepresented XS IDs

  7. (PR#2479) Adding method to DefaultExecuter for final parameter updates

4.2.1.2. Code Changes, Bugs and Fixes

  1. (PR#2468) Fixing shuffle file reading in reload runs

  2. (PR#2470) Removing unused and broken material UThZr

4.2.1.3. Code Changes, Maintenance, or Trivial

  1. (PR#2422) Removing unused parameter fluxAdjPeak

  2. (PR#2430) Moving 27 TH parameters out of ARMI

  3. (PR#2451) Moving 7 Neutronics Settings out of ARMI

  4. (PR#2456) Anonymizing example user names in IPYNBs

  5. (PR#2457) Doing misc cleanup and temporary pyDOE issue

  6. (PR#2458) Removing broken pyDOE dep and LatinHyperCubeSuiteBuilder

  7. (PR#2459) Removing Core.getAssembliesOfType in favor of iterChildrenWithFlags

  8. (PR#2460) Stopping intermittent CI failures

  9. (PR#2461) Renaming _Material_Test to AbstractMaterialTest

  10. (PR#2462) Switching from coveralls.io to codecov.io

  11. (PR#2482) Ensuring codecov.io does not fail if coverage drops a tiny amount

  12. (PR#2483) Producing an ARMI wheel with every merge to main

4.2.1.4. Documentation-Only Changes

  1. (PR#2441) Moving the README text up in the PDF ToC

  2. (PR#2481) Getting nuclide_demo tutorial working again

  3. (PR#2443) Starting release cycle for ARMI 0.6.4

4.2.2. ARMI v0.6.3

Release Date: 2026-02-02

This was a minor release. There were changes made to the temporary directory and unit test tooling to support read-only containers. There were also some improvements to the shuffle logic API. And the documentation had many small cleanup changes. For quality, when accessing a material property outside the temperature range it was defined for, ARMI now raises an exception by default.

4.2.2.1. Code Changes, Features

  1. (PR#2385) Set materials.FAIL_ON_RANGE to True by default

  2. (PR#2399) New exception for mpi4py import

  3. (PR#2402) Improving cleanPath and related tooling

  4. (PR#2411) Refactoring Shuffling Logic

  5. (PR#2423) Fix issue with recent runLog changes

  6. (PR#2428) Copying assembly flags when creating a new assembly from type

  7. (PR#2432) Adding forceClean to snapshot deletions

4.2.2.2. Code Changes, Maintenance, or Trivial

  1. (PR#2393) Shortening some test class names that are too long

  2. (PR#2407) Removing unused Inconel material properties

  3. (PR#2420) Adding unit testing to HexBlock.getPinPitch

  4. (PR#2421) Renaming misloadSwap to swap

  5. (PR#2424) Removing deprecation warning from test

  6. (PR#2425) Adding code coverage

  7. (PR#2426) Moving DIF3D parameters out of ARMI

4.2.2.3. Documentation-Only Changes

  1. (PR#2386) Adding a count of how many settings are in ARMI

  2. (PR#2390) Ensuring that SCRs will build correctly during main branch pushes

  3. (PR#2395) Cleaning up the docs

  4. (PR#2398) Starting version 0.6.3 release cycle

  5. (PR#2403) Improving nuclidebases documentation - byMcnpId

  6. (PR#2409) Clarifying PIP version in user install docs

  7. (PR#2418) Adding descriptions to two impl tags

  8. (PR#2419) Ensuring all impl and test tags show in the docs

  9. (PR#2433) Adding a high-level Parameter Report to the docs

  10. (PR#2439) Adding an AUTHORS file to ARMI

4.2.3. ARMI v0.6.2

Release Date: 2025-12-17

This was a minor release. There was a refactoring cleanup done to NulcideBases. And there were some very minor API-breaking changes to the HistoryTrackerInterface and Interface.function was renamed to Interface.purpose. The coolest new feature is the improvements made to loadTestReactor, which can now cache a variety of test reactors to improve your test performance.

4.2.3.1. Code Changes, Features

  1. (PR#2335) Moving to use Reactor.nuclideBases, where possible

  2. (PR#2374) Changing MPI_COMM to the Pickle Protocol 5

4.2.3.2. Code Changes, Bugs and Fixes

  1. (PR#2364) Fixing HoledHexagon.holeRadFromCenter type

4.2.3.3. Code Changes, Maintenance, or Trivial

  1. (PR#2177) Changing Interface.function to Interface.purpose

  2. (PR#2334) Refactoring loadTestReactor to pickle multiple test reactors

  3. (PR#2358) Adding code coverage

  4. (PR#2359) Cleaning up DB version logic

  5. (PR#2360) Cleaning out broken tryPickleOnAllContents3

  6. (PR#2366) Raising instead of returning errors

  7. (PR#2369) Moving three test reactors to the testing module

  8. (PR#2371) Moving more ARMI testing tools to the testing module

  9. (PR#2375) Cleaning unused parts of HistoryTrackerInterface

  10. (PR#2387) Removing Five Unused Settings

  11. (PR#2389) Improving HexBlock.hasPinPitch

4.2.3.4. Documentation-Only Changes

  1. (PR#2351) Updating PR form to use the word Rationale

  2. (PR#2363) Starting 0.6.2 release cycle

  3. (PR#2365) Improving and correcting the ARMI version semantics

  4. (PR#2367) Formatting code in docstrings

  5. (PR#2372) Documenting database cycle and node values

  6. (PR#2373) Fixing docs deploying across GitHub repos

  7. (PR#2383) Clarifying parameter doc headers

  8. (PR#2388) Updating SCR to use the term Rationale

4.2.4. ARMI v0.6.1

Release Date: 2025-11-05

This was a minor release. While a lot of technical debt was addressed, no major feature work was done. There were some minor bugs fixed, but again nothing worth a release. This is being tagged as a release because the API is stable and this commit was tested heavily downstream and is trustworthy.

4.2.4.1. Code Changes, Features

  1. (PR#2303) Encapsulating global nuclide data in classes

  2. (PR#2317) Simplify thermal scattering

  3. (PR#2320) Providing interface method interactRestart for managing restarts

  4. (PR#2321) Adding Core.hasLib to check if there is a XS library

  5. (PR#2323) Enabling user-specified distribution of MPI actions across nodes

  6. (PR#2324) Adding orientationBOL to full core modifier

  7. (PR#2325) Creating a new setting to specify memory requirement for cross section calculation

  8. (PR#2344) Changing default for guideTubeTopElevation to zero

4.2.4.2. Code Changes, Bugs and Fixes

  1. (PR#2328) Ensuring that users define isotopics for custom materials

  2. (PR#2331) Resolve TEST_ROOT path

  3. (PR#2336) Checking number of jobs against available ranks in runBatchedActions

  4. (PR#2347) Fixing missing f-string in component blueprints

  5. (PR#2350) Fixing compareLines for a multiple numbers edge case

4.2.4.3. Code Changes, Maintenance, or Trivial

  1. (PR#2306) Removing volume from getMgFlux()

  2. (PR#2309) Moving plotting functions into utils module

  3. (PR#2310) Removing unnecessary code from Assembly.getBlocksBetweenElevations

  4. (PR#2315) Moving some testing utils to testing module

  5. (PR#2327) Adding a unit test to HexGrid.generateSortedHexLocationList

  6. (PR#2348) Make singleMixedAssembly more flexible for downstream testing

4.2.4.4. Documentation-Only Changes

  1. (PR#2250) Logging redundant material modifications

  2. (PR#2280) Improving the new shuffling docs

  3. (PR#2311) Starting the ARMI 0.6.1 release cycle

  4. (PR#2312) Updating XS group manager requirements

  5. (PR#2314) Documenting ARMI’s testing tools for devs

  6. (PR#2332) Adding settings header to the settings YAML

  7. (PR#2337) Fixing docs build

  8. (PR#2339) Adding contributor to SCR doc automation script

  9. (PR#2342) Documenting how to use the zonesFile Setting

  10. (PR#2343) Improving documentation for zoneDefinions Setting

  11. (PR#2354) Clarifying that ARMI materials are of testing quality

4.2.5. ARMI v0.6.0

Release Date: 2025-09-25

This was a big release. A lot of technical debt has been cleaned up (XML geom files are finally gone), but there was a lot a lot of feature work: multi-pin blocks, axial expansion improvements, more powerful shuffle logic, and the ability to more freely load an ARMI database.

4.2.5.1. Code Changes, Features

  1. (PR#1995) Improving HexBlock.getFlowArea

  2. (PR#2031) Providing better composite iteration methods

  3. (PR#2045) Adding a check on the grid/component consistency in the BPs

  4. (PR#2092) Allowing ARMI to use tmp dir on Mac/Linux

  5. (PR#2105) Removing support for XML geom files

  6. (PR#2106) Add Core.iterBlocks and Assembly.iterBlocks

  7. (PR#2107) Handing empty string defaults better in copyInterfaceInputs

  8. (PR#2109) Store number densities in numpy arrays instead of dictionary

  9. (PR#2114) Allowing component area to be queried at arbitrary temp

  10. (PR#2118) Adding a FilletedHexagon shape

  11. (PR#2121) Supporting growing DBto full core on db load

  12. (PR#2135) Retooling single-warnings report as all warnings report

  13. (PR#2138) Allowing the BOL orientations to be set in the blueprints

  14. (PR#2162) Make axial linking aware of block grids for axial expansion

  15. (PR#2173) Improving Core.libs to look for the current cycle and node

  16. (PR#2175) Blocking duplicate flags from being added

  17. (PR#2198) Updating Axial Expansion Changer for improved mass redistribution

  18. (PR#2199) Add 3 nuclides to getDefaultNuclideFlags

  19. (PR#2202) Provide Component.pinIndices for helping understand where pins are

  20. (PR#2208) Making ParamMapper symmetry-aware

  21. (PR#2209) Block collection nuclides

  22. (PR#2218) Adding a method to get cycle/node combinations for a time interval

  23. (PR#2219) Refactoring Shuffle Logic Inputs to YAML

  24. (PR#2221) Update logic for number density arrays and other cleanup

  25. (PR#2223) Move the zonesFile setting to the framework and add building of zones to the interface stack

  26. (PR#2225) Advancing r.p.time in the Operator

  27. (PR#2227) Symmetry testing

  28. (PR#2233) Remove axialPowerProfile* parameters

  29. (PR#2235) Adding two geometry parameters

  30. (PR#2243) Updating wetted perimeter calculation

  31. (PR#2251) Comparing special formatting parameters in DBs

  32. (PR#2255) Add b10NumFrac attribute to B4C class to allow for flexible setDefaultMassFracs

  33. (PR#2266) Allow assembly parameters to be symmetry aware during core transformations and move operations

  34. (PR#2269) Track assemblies if discharged to SFP

  35. (PR#2272) Adding new Component param enrichmentBOL

  36. (PR#2275) Cleaning internal state out of some materials

  37. (PR#2277) Enhance fuel handler logic to support module imports

  38. (PR#2278) Adding support for moving assemblies from SFP to Core in YAML shuffle input

  39. (PR#2292) Support mixed Blocks for smear density calculation

  40. (PR#2305) Raising error if no driverBlock is found by latticePhysicsWriter

4.2.5.2. Code Changes, Bugs and Fixes

  1. (PR#1654) Use clearer input syntax for hexagonal lattice pitch

  2. (PR#1998) Fixing a couple of plots to use initial block height

  3. (PR#2098) Removing the HTML reports feature

  4. (PR#2102) Fixing issue in copyInterfaceInputs with one file

  5. (PR#2111) fix side effects from tests

  6. (PR#2115) Adding Reactor construction hook to Database.load()

  7. (PR#2120) Cylindrical Cross Section model updates

  8. (PR#2129) OperatorMPI doesn’t need to bcast quits if there no other workers

  9. (PR#2153) Hiding duplicate warning messages

  10. (PR#2160) Fixing bad Return in safeCopy

  11. (PR#2163) Using gamma groups instead of neutron groups in gamiso.addDummyNuclidesToLibrary

  12. (PR#2176) Using np.int32 when reading GEODST files

  13. (PR#2180) Remove assert statements from FilletedHexagon instantiation

  14. (PR#2186) Ensuring full core BPs aren’t converted like 1/3 core

  15. (PR#2187) Fixing bug in Uranium.pseudoDensity

  16. (PR#2189) Fixing bug in finding ISOTXS libraries to merge

  17. (PR#2191) Fixing issue with full core BP geometry conversion

  18. (PR#2195) Fixing round trip of hex lattice maps

  19. (PR#2226) Fix equality of MultiIndexLocator and CoordinateLocation

  20. (PR#2228) Fixing bug in Air.pseudoDensity when given Celsius T

  21. (PR#2229) Change initialization of modArea for database load

  22. (PR#2231) Fixing issue initial time node in previous PR

  23. (PR#2236) Handle pinIndices for blocks that don’t have fuel

  24. (PR#2245) Fixing invalid any() signature

  25. (PR#2248) Fixing issue loading from snapshots database

  26. (PR#2253) Making a unit test thread safe

  27. (PR#2259) Re-assigning pin indices when sorting a Block

  28. (PR#2260) Fixing compareLines so that it doesn’t trip on zeros

  29. (PR#2268) Fixing Uranium enrichment calculations

  30. (PR#2276) Fixing Composite.extend to correctly set the parent

  31. (PR#2282) Fixing incorrect variable name in Pitch class

  32. (PR#2291) Conserve molesHmBOL / massHmBOL when performing axial expansion

  33. (PR#2294) Ensuring settings file can be found when writing one DB from another

  34. (PR#2298) Preserve loading of CoordinateLocation in db load

  35. (PR#2302) Handle pin indices for fuel + non fuel on the same grid

  36. (PR#2307) Clearing out Component.p.pinIndices prior to assignment

4.2.5.3. Code Changes, Maintenance, or Trivial

  1. (PR#1386) Improve “smallRun” settings names

  2. (PR#2085) Dropping black formatter for ruff

  3. (PR#2093) Speed up axial expansion unit tests

  4. (PR#2096) Fixing spelling errors

  5. (PR#2103) Fixing spelling in docs and docstrings

  6. (PR#2104) Removing defunct references to Cinder

  7. (PR#2110) Combining three .gitignore files into one

  8. (PR#2116) Cleaning up the codeTiming reports

  9. (PR#2117) Reducing the warnings from Block.autoCreateSpatialGrids

  10. (PR#2123) Removing permanently skipped tests

  11. (PR#2126) Removing old TODO comments from the codebase

  12. (PR#2127) Removing 3 unused Settings

  13. (PR#2128) Created a fast flux energy structure for calculating fast flux

  14. (PR#2130) Removing unused Parameters

  15. (PR#2132) Removing unused reactivity coeffs params

  16. (PR#2133) Moving NeutronicsPlugin to its own file

  17. (PR#2134) Removing unused Parameters

  18. (PR#2136) Removing unused TH parameters

  19. (PR#2139) Removing unnecessary DB load try/except

  20. (PR#2140) Cleaning up Block constructor

  21. (PR#2141) Changing format-style strings to f-strings

  22. (PR#2142) Quieting warnings from Block.getComponent

  23. (PR#2144) Improving the default value for Assembly.getArea()

  24. (PR#2146) Some more fstring conversions

  25. (PR#2155) Cleaning up strange counter line

  26. (PR#2157) Removing overly-specific check from the Component constructor

  27. (PR#2165) Removing old setting mpiTasksPerNode from ZPPR test file

  28. (PR#2166) Removing commented out code

  29. (PR#2167) Removing unused test code

  30. (PR#2168) Removing Deprecation Warning on sortReactor setting

  31. (PR#2170) Adding a collar flag

  32. (PR#2171) Cleaning up Tests to have Fewer Side Effects

  33. (PR#2183) Renaming old smallRun Setting to rmExternalFilesAtEOL

  34. (PR#2190) Using iterators instead of getAssemblies where possible

  35. (PR#2197) Using iterators more in our unit tests

  36. (PR#2203) Slight refactor on b.getSmearDensity to accommodate downstream work

  37. (PR#2210) Removing python-dateutil dependency

  38. (PR#2211) Remove Component.p.puFrac

  39. (PR#2212) Removing duplicate lines

  40. (PR#2215) Removing defunct deprecation warning

  41. (PR#2220) Adding a basic unit test of Block.computeSmearDensity

  42. (PR#2230) Adding Composite.getFirstComponent method

  43. (PR#2232) Handling BOL times better

  44. (PR#2240) Cleaning trace and profile out of RunEntryPoint

  45. (PR#2241) move attributes to __init__

  46. (PR#2242) ParamLocation for Duct Temp/DPAs

  47. (PR#2257) Improving Code Coverage for Blocks and MPIAction

  48. (PR#2263) Adding tests to improve code coverage

  49. (PR#2265) Removing deprecated settingsValidation file

  50. (PR#2283) Removing unused debugDB setting

  51. (PR#2285) Improving the error messages for invalid settings data

  52. (PR#2289) Improving extensibility of mass redistribution method in axial expansion

  53. (PR#2297) Reducing log spam when creating a lot of spatial grids

  54. (PR#2300) Shortening our longest unit test names

4.2.5.4. Documentation-Only Changes

  1. (PR#2090) Adding an SCR section to the docs

  2. (PR#2095) Edits to STR test report

  3. (PR#2100) Adding more info to STR intro

  4. (PR#2101) Fixing issue with SCR on main branch

  5. (PR#2119) Adding basic documentation for axial expansion

  6. (PR#2131) Update docstring for Settings class to reflect mutability

  7. (PR#2137) Improving description of rateProdNet parameter

  8. (PR#2143) Improving the docs-build instructions

  9. (PR#2148) Adding tooling to help people build the docs locally

  10. (PR#2150) Clarifying setting disableBlockTypeExclusionInXsGeneration

  11. (PR#2151) Adding SQA for the SFP and cycles setting

  12. (PR#2174) Remove traces of black

  13. (PR#2213) Ensuring non-main branch PRs do not yield SCRs

  14. (PR#2214) Fixing error in recent doc change

  15. (PR#2217) Improving documentation of axial expansion

  16. (PR#2222) Make a duplicated test tag unique

  17. (PR#2238) Trying to speed up docs build

  18. (PR#2249) Improving docs on entry points creation

  19. (PR#2264) Update the description of the mcnpLibraryVersion case setting

  20. (PR#2270) Fixing sphinx warnings in the doc build

  21. (PR#2274) Adding user documentation of core symmetry

  22. (PR#2279) Fixing the SCR table in the docs

  23. (PR#2286) Improving Docs for 0.6.0 Release