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
(PR#2453) Adding matProps: a material library
(PR#2405) Remove ruamel.yaml dependency pin maximum
(PR#2436) Optimizing the HistoryTracker EOL interaction
(PR#2442) Defaulting the Database to read mode
(PR#2477) Adding a block converter for mixed pin assemblies
(PR#2478) Checking for unrepresented XS IDs
(PR#2479) Adding method to DefaultExecuter for final parameter updates
4.2.1.2. Code Changes, Bugs and Fixes
4.2.1.3. Code Changes, Maintenance, or Trivial
(PR#2422) Removing unused parameter fluxAdjPeak
(PR#2430) Moving 27 TH parameters out of ARMI
(PR#2451) Moving 7 Neutronics Settings out of ARMI
(PR#2456) Anonymizing example user names in IPYNBs
(PR#2457) Doing misc cleanup and temporary pyDOE issue
(PR#2458) Removing broken pyDOE dep and LatinHyperCubeSuiteBuilder
(PR#2459) Removing Core.getAssembliesOfType in favor of iterChildrenWithFlags
(PR#2460) Stopping intermittent CI failures
(PR#2461) Renaming _Material_Test to AbstractMaterialTest
(PR#2462) Switching from coveralls.io to codecov.io
(PR#2482) Ensuring codecov.io does not fail if coverage drops a tiny amount
(PR#2483) Producing an ARMI wheel with every merge to main
4.2.1.4. Documentation-Only Changes
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
(PR#2385) Set materials.FAIL_ON_RANGE to True by default
(PR#2399) New exception for mpi4py import
(PR#2402) Improving cleanPath and related tooling
(PR#2411) Refactoring Shuffling Logic
(PR#2423) Fix issue with recent runLog changes
(PR#2428) Copying assembly flags when creating a new assembly from type
(PR#2432) Adding forceClean to snapshot deletions
4.2.2.2. Code Changes, Maintenance, or Trivial
(PR#2393) Shortening some test class names that are too long
(PR#2407) Removing unused Inconel material properties
(PR#2420) Adding unit testing to HexBlock.getPinPitch
(PR#2421) Renaming misloadSwap to swap
(PR#2424) Removing deprecation warning from test
(PR#2425) Adding code coverage
(PR#2426) Moving DIF3D parameters out of ARMI
4.2.2.3. Documentation-Only Changes
(PR#2386) Adding a count of how many settings are in ARMI
(PR#2390) Ensuring that SCRs will build correctly during main branch pushes
(PR#2395) Cleaning up the docs
(PR#2398) Starting version 0.6.3 release cycle
(PR#2403) Improving nuclidebases documentation - byMcnpId
(PR#2409) Clarifying PIP version in user install docs
(PR#2418) Adding descriptions to two impl tags
(PR#2419) Ensuring all impl and test tags show in the docs
(PR#2433) Adding a high-level Parameter Report to the docs
(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
4.2.3.2. Code Changes, Bugs and Fixes
(PR#2364) Fixing HoledHexagon.holeRadFromCenter type
4.2.3.3. Code Changes, Maintenance, or Trivial
(PR#2177) Changing Interface.function to Interface.purpose
(PR#2334) Refactoring loadTestReactor to pickle multiple test reactors
(PR#2358) Adding code coverage
(PR#2359) Cleaning up DB version logic
(PR#2360) Cleaning out broken tryPickleOnAllContents3
(PR#2366) Raising instead of returning errors
(PR#2369) Moving three test reactors to the testing module
(PR#2371) Moving more ARMI testing tools to the testing module
(PR#2375) Cleaning unused parts of HistoryTrackerInterface
(PR#2387) Removing Five Unused Settings
(PR#2389) Improving HexBlock.hasPinPitch
4.2.3.4. Documentation-Only Changes
(PR#2351) Updating PR form to use the word Rationale
(PR#2363) Starting 0.6.2 release cycle
(PR#2365) Improving and correcting the ARMI version semantics
(PR#2367) Formatting code in docstrings
(PR#2372) Documenting database cycle and node values
(PR#2373) Fixing docs deploying across GitHub repos
(PR#2383) Clarifying parameter doc headers
(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
(PR#2303) Encapsulating global nuclide data in classes
(PR#2317) Simplify thermal scattering
(PR#2320) Providing interface method interactRestart for managing restarts
(PR#2321) Adding Core.hasLib to check if there is a XS library
(PR#2323) Enabling user-specified distribution of MPI actions across nodes
(PR#2324) Adding orientationBOL to full core modifier
(PR#2325) Creating a new setting to specify memory requirement for cross section calculation
(PR#2344) Changing default for guideTubeTopElevation to zero
4.2.4.2. Code Changes, Bugs and Fixes
(PR#2328) Ensuring that users define isotopics for custom materials
(PR#2331) Resolve TEST_ROOT path
(PR#2336) Checking number of jobs against available ranks in runBatchedActions
(PR#2347) Fixing missing f-string in component blueprints
(PR#2350) Fixing compareLines for a multiple numbers edge case
4.2.4.3. Code Changes, Maintenance, or Trivial
(PR#2306) Removing volume from getMgFlux()
(PR#2309) Moving plotting functions into utils module
(PR#2310) Removing unnecessary code from Assembly.getBlocksBetweenElevations
(PR#2315) Moving some testing utils to testing module
(PR#2327) Adding a unit test to HexGrid.generateSortedHexLocationList
(PR#2348) Make singleMixedAssembly more flexible for downstream testing
4.2.4.4. Documentation-Only Changes
(PR#2250) Logging redundant material modifications
(PR#2280) Improving the new shuffling docs
(PR#2311) Starting the ARMI 0.6.1 release cycle
(PR#2312) Updating XS group manager requirements
(PR#2314) Documenting ARMI’s testing tools for devs
(PR#2332) Adding settings header to the settings YAML
(PR#2337) Fixing docs build
(PR#2339) Adding contributor to SCR doc automation script
(PR#2342) Documenting how to use the zonesFile Setting
(PR#2343) Improving documentation for zoneDefinions Setting
(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
(PR#1995) Improving HexBlock.getFlowArea
(PR#2031) Providing better composite iteration methods
(PR#2045) Adding a check on the grid/component consistency in the BPs
(PR#2092) Allowing ARMI to use tmp dir on Mac/Linux
(PR#2105) Removing support for XML geom files
(PR#2106) Add Core.iterBlocks and Assembly.iterBlocks
(PR#2107) Handing empty string defaults better in copyInterfaceInputs
(PR#2109) Store number densities in numpy arrays instead of dictionary
(PR#2114) Allowing component area to be queried at arbitrary temp
(PR#2118) Adding a FilletedHexagon shape
(PR#2121) Supporting growing DBto full core on db load
(PR#2135) Retooling single-warnings report as all warnings report
(PR#2138) Allowing the BOL orientations to be set in the blueprints
(PR#2162) Make axial linking aware of block grids for axial expansion
(PR#2173) Improving Core.libs to look for the current cycle and node
(PR#2175) Blocking duplicate flags from being added
(PR#2198) Updating Axial Expansion Changer for improved mass redistribution
(PR#2199) Add 3 nuclides to getDefaultNuclideFlags
(PR#2202) Provide Component.pinIndices for helping understand where pins are
(PR#2208) Making ParamMapper symmetry-aware
(PR#2209) Block collection nuclides
(PR#2218) Adding a method to get cycle/node combinations for a time interval
(PR#2219) Refactoring Shuffle Logic Inputs to YAML
(PR#2221) Update logic for number density arrays and other cleanup
(PR#2223) Move the zonesFile setting to the framework and add building of zones to the interface stack
(PR#2225) Advancing r.p.time in the Operator
(PR#2227) Symmetry testing
(PR#2233) Remove axialPowerProfile* parameters
(PR#2235) Adding two geometry parameters
(PR#2243) Updating wetted perimeter calculation
(PR#2251) Comparing special formatting parameters in DBs
(PR#2255) Add b10NumFrac attribute to B4C class to allow for flexible setDefaultMassFracs
(PR#2266) Allow assembly parameters to be symmetry aware during core transformations and move operations
(PR#2269) Track assemblies if discharged to SFP
(PR#2272) Adding new Component param enrichmentBOL
(PR#2275) Cleaning internal state out of some materials
(PR#2277) Enhance fuel handler logic to support module imports
(PR#2278) Adding support for moving assemblies from SFP to Core in YAML shuffle input
(PR#2292) Support mixed Blocks for smear density calculation
(PR#2305) Raising error if no driverBlock is found by latticePhysicsWriter
4.2.5.2. Code Changes, Bugs and Fixes
(PR#1654) Use clearer input syntax for hexagonal lattice pitch
(PR#1998) Fixing a couple of plots to use initial block height
(PR#2098) Removing the HTML reports feature
(PR#2102) Fixing issue in copyInterfaceInputs with one file
(PR#2111) fix side effects from tests
(PR#2115) Adding Reactor construction hook to Database.load()
(PR#2120) Cylindrical Cross Section model updates
(PR#2129) OperatorMPI doesn’t need to bcast quits if there no other workers
(PR#2153) Hiding duplicate warning messages
(PR#2160) Fixing bad Return in safeCopy
(PR#2163) Using gamma groups instead of neutron groups in gamiso.addDummyNuclidesToLibrary
(PR#2176) Using np.int32 when reading GEODST files
(PR#2180) Remove assert statements from FilletedHexagon instantiation
(PR#2186) Ensuring full core BPs aren’t converted like 1/3 core
(PR#2187) Fixing bug in Uranium.pseudoDensity
(PR#2189) Fixing bug in finding ISOTXS libraries to merge
(PR#2191) Fixing issue with full core BP geometry conversion
(PR#2195) Fixing round trip of hex lattice maps
(PR#2226) Fix equality of MultiIndexLocator and CoordinateLocation
(PR#2228) Fixing bug in Air.pseudoDensity when given Celsius T
(PR#2229) Change initialization of modArea for database load
(PR#2231) Fixing issue initial time node in previous PR
(PR#2236) Handle pinIndices for blocks that don’t have fuel
(PR#2245) Fixing invalid any() signature
(PR#2248) Fixing issue loading from snapshots database
(PR#2253) Making a unit test thread safe
(PR#2259) Re-assigning pin indices when sorting a Block
(PR#2260) Fixing compareLines so that it doesn’t trip on zeros
(PR#2268) Fixing Uranium enrichment calculations
(PR#2276) Fixing Composite.extend to correctly set the parent
(PR#2282) Fixing incorrect variable name in Pitch class
(PR#2291) Conserve molesHmBOL / massHmBOL when performing axial expansion
(PR#2294) Ensuring settings file can be found when writing one DB from another
(PR#2298) Preserve loading of CoordinateLocation in db load
(PR#2302) Handle pin indices for fuel + non fuel on the same grid
(PR#2307) Clearing out Component.p.pinIndices prior to assignment
4.2.5.3. Code Changes, Maintenance, or Trivial
(PR#1386) Improve “smallRun” settings names
(PR#2085) Dropping black formatter for ruff
(PR#2093) Speed up axial expansion unit tests
(PR#2096) Fixing spelling errors
(PR#2103) Fixing spelling in docs and docstrings
(PR#2104) Removing defunct references to Cinder
(PR#2110) Combining three .gitignore files into one
(PR#2116) Cleaning up the codeTiming reports
(PR#2117) Reducing the warnings from Block.autoCreateSpatialGrids
(PR#2123) Removing permanently skipped tests
(PR#2126) Removing old TODO comments from the codebase
(PR#2127) Removing 3 unused Settings
(PR#2128) Created a fast flux energy structure for calculating fast flux
(PR#2130) Removing unused Parameters
(PR#2132) Removing unused reactivity coeffs params
(PR#2133) Moving NeutronicsPlugin to its own file
(PR#2134) Removing unused Parameters
(PR#2136) Removing unused TH parameters
(PR#2139) Removing unnecessary DB load try/except
(PR#2140) Cleaning up Block constructor
(PR#2141) Changing format-style strings to f-strings
(PR#2142) Quieting warnings from Block.getComponent
(PR#2144) Improving the default value for Assembly.getArea()
(PR#2146) Some more fstring conversions
(PR#2155) Cleaning up strange counter line
(PR#2157) Removing overly-specific check from the Component constructor
(PR#2165) Removing old setting mpiTasksPerNode from ZPPR test file
(PR#2166) Removing commented out code
(PR#2167) Removing unused test code
(PR#2168) Removing Deprecation Warning on sortReactor setting
(PR#2170) Adding a collar flag
(PR#2171) Cleaning up Tests to have Fewer Side Effects
(PR#2183) Renaming old smallRun Setting to rmExternalFilesAtEOL
(PR#2190) Using iterators instead of getAssemblies where possible
(PR#2197) Using iterators more in our unit tests
(PR#2203) Slight refactor on b.getSmearDensity to accommodate downstream work
(PR#2210) Removing python-dateutil dependency
(PR#2211) Remove Component.p.puFrac
(PR#2212) Removing duplicate lines
(PR#2215) Removing defunct deprecation warning
(PR#2220) Adding a basic unit test of Block.computeSmearDensity
(PR#2230) Adding Composite.getFirstComponent method
(PR#2232) Handling BOL times better
(PR#2240) Cleaning trace and profile out of RunEntryPoint
(PR#2241) move attributes to __init__
(PR#2242) ParamLocation for Duct Temp/DPAs
(PR#2257) Improving Code Coverage for Blocks and MPIAction
(PR#2263) Adding tests to improve code coverage
(PR#2265) Removing deprecated settingsValidation file
(PR#2283) Removing unused debugDB setting
(PR#2285) Improving the error messages for invalid settings data
(PR#2289) Improving extensibility of mass redistribution method in axial expansion
(PR#2297) Reducing log spam when creating a lot of spatial grids
(PR#2300) Shortening our longest unit test names
4.2.5.4. Documentation-Only Changes
(PR#2090) Adding an SCR section to the docs
(PR#2095) Edits to STR test report
(PR#2100) Adding more info to STR intro
(PR#2101) Fixing issue with SCR on main branch
(PR#2119) Adding basic documentation for axial expansion
(PR#2131) Update docstring for Settings class to reflect mutability
(PR#2137) Improving description of rateProdNet parameter
(PR#2143) Improving the docs-build instructions
(PR#2148) Adding tooling to help people build the docs locally
(PR#2150) Clarifying setting disableBlockTypeExclusionInXsGeneration
(PR#2151) Adding SQA for the SFP and cycles setting
(PR#2174) Remove traces of black
(PR#2213) Ensuring non-main branch PRs do not yield SCRs
(PR#2214) Fixing error in recent doc change
(PR#2217) Improving documentation of axial expansion
(PR#2222) Make a duplicated test tag unique
(PR#2238) Trying to speed up docs build
(PR#2249) Improving docs on entry points creation
(PR#2264) Update the description of the mcnpLibraryVersion case setting
(PR#2270) Fixing sphinx warnings in the doc build
(PR#2274) Adding user documentation of core symmetry
(PR#2279) Fixing the SCR table in the docs
(PR#2286) Improving Docs for 0.6.0 Release