4.2. Release Notes for ARMI 0.5

These are the release notes for past versions of ARMI, created before our SCR process. They are preserved here for historical record.

4.2.1. ARMI v0.5.1

Release Date: 2025-03-14

This release was all about QA documentation. We open-sourced our QA documentation, even our software requirements. There were also several bug fixes.

4.2.1.1. New Features

  1. Move instead of copy files from TemporaryDirectoryChanger. (PR#2022)

  2. Creating the armi.testing module, to share ARMI testing tools. (PR#2028)

  3. Using inner diameter for sorting components when outer diameter is identical. (PR#1882)

  4. Invoking component.material.density() does not log an expensive stack tracefor fluids. (PR#2075)

  5. ARMI will now try to use the /tmp/ directory for its temp files, on Linux and MacOS. (PR#2092)

4.2.1.2. API Changes

  1. Removing Database3 from the API, use Database. (PR#2052)

4.2.1.3. Bug Fixes

  1. Fixing check for jagged arrays during _writeParams. (PR#2051)

  2. Fixing BP-section ignoring tool in PassiveDBLoadPlugin. (PR#2055)

  3. Making sure SFPs have spatial grids. (PR#2082)

  4. Fixing number densities when custom isotopics are combined with Fluid components. (PR#2071)

  5. Fixing scaling of volume-integrated parameters on edge assemblies. (PR#2060)

  6. Fixing strictness of HexGrid rough equality check. (PR#2058)

  7. Fixing treatment of symmetry factors when calculating component flux and reaction rates. (PR#2068)

4.2.1.4. Quality Work

  1. Open-Sourcing the ARMI requirements. (PR#2076)

  2. Significant revamp of the ARMI requirements. (PR#2074)

  3. Adding PDF versions of the ARMI docs. (PR#2072)

  4. Update docs build to occur with Python 3.13 and updated docs dependencies. (PR#2050)

  5. Removing silent overwrite of shutil.copy. (PR#2081)

4.2.2. ARMI v0.5.0

Release Date: 2024-12-14

4.2.2.1. New Features

  1. Supporting Python 3.12. (PR#1813)

  2. Supporting Python 3.13. (PR#1996)

  3. Adding data models for ex-core structures in ARMI. (PR#1891)

  4. Opening some DBs without the App that created them. (PR#1917)

  5. Adding support for ENDF/B-VII.1-based MC2-3 libraries. (PR#1982)

  6. Adding setting mcnpLibraryVersion to chosen ENDF library for MCNP. (PR#1989)

  7. Removing the tabulate dependency by ingesting it to armi.utils.tabulate. (PR#1811)

  8. HexBlock.rotate updates the spatial locator for children of that block. (PR#1943)

  9. Provide Block.getInputHeight for determining the height of a block from blueprints. (PR#1927)

  10. Provide Parameter.hasCategory for quickly checking if a parameter is defined with a given category. (PR#1899)

  11. Provide ParameterCollection.where for efficient iteration over parameters who’s definition matches a given condition. (PR#1899)

  12. Flags can now be defined with letters and numbers. (PR#1966)

  13. Provide utilities for determining location of a rotated object in a hexagonal lattice (getIndexOfRotatedCell). (PR#1846)

  14. Allow merging a component with zero area into another component. (PR#1858)

  15. New plugin hook getAxialExpansionChanger to customize axial expansion. (PR#1870)

  16. New plugin hook beforeReactorConstruction to process settings before reactor init. (PR#1945)

  17. Improving performance in the lattice physics interface by not updating cross sections at everyNode during coupled calculations. (PR#1963)

  18. Allow merging a component with zero area into another component. (PR#1858)

  19. Updating copyOrWarn and getFileSHA1Hash to support directories. (PR#1984)

  20. Improve efficiency of reaction rate calculations. (PR#1887)

  21. Adding new options for simplifying 1D cross section modeling. (PR#1949)

  22. Adding --skip-inspection flag to CompareCases CLI. (PR#1842)

  23. Exposing skip inspection options for armi.init and db.loadOperator. (PR#2005)

  24. Exposing detailedNDens to components. (PR#1954)

  25. Adding a method getPinMgFluxes to get pin-wise multigroup fluxes from a Block. (PR#1990)

4.2.2.2. API Changes

  1. nuclideBases.byMcc3ID and getMcc3Id() return IDs consistent with ENDF/B-VII.1. (PR#1982)

  2. Moving settingsValidation from operators to settings. (PR#1895)

  3. Allowing for unknown Flags when opening a DB. (PR#1844)

  4. Renaming Reactor.moveList to Reactor.moves. (PR#1881)

  5. Transposing pinMgFluxes parameters so that leading dimension is pin index. (PR#1937)

  6. Block.getPinCoordinates returns an (N, 3) array, rather than a list of arrays. (PR#1943)

  7. Alphabetizing Flags.toString() results. (PR#1912)

  8. copyInterfaceInputs no longer requires a valid setting object. (PR#1934)

  9. Changing synDbAfterWrite default to True. (PR#1968)

  10. Removing Assembly.rotatePins and Block.rotatePins. Prefer Assembly.rotate and Block.rotate. (PR#1846)

  11. Removing broken plot buVsTime. (PR#1994)

  12. Removing class AssemblyList and assemblyLists.py. (PR#1891)

  13. Removing class globalFluxInterface.DoseResultsMapper. (PR#1952)

  14. Removing class SmartList. (PR#1992)

  15. Removing flags CORE and REACTOR. (PR#1835)

  16. Removing method Assembly.doubleResolution(). (PR#1951)

  17. Removing method buildEqRingSchedule. (PR#1928)

  18. Removing method prepSearch. (PR#1845)

  19. Removing method SkippingXsGen_BuChangedLessThanTolerance. (PR#1845)

  20. Removing setting autoGenerateBlockGrids. (PR#1947)

  21. Removing setting mpiTasksPerNode and renaming numProcessors to nTasks. (PR#1958)

  22. History Tracker: “detail assemblies” are now fuel and control assemblies. (PR#1990)

  23. Removing Block.breakFuelComponentsIntoIndividuals(). (PR#1990)

  24. Moving getPuMoles from blocks.py up to composites.py. (PR#1990)

  25. Requiring buReducingAssemblyRotation and getOptimalAssemblyOrientation to have pin-level burnup. (PR#2019)

4.2.2.3. Bug Fixes

  1. Fixed spatial grids of pins in Blocks on flats-up grids. (PR#1947)

  2. Fixed DerivedShape.getArea for cold=True. (PR#1831)

  3. Fixed error parsing command line integers in ReportsEntryPoint. (PR#1824)

  4. Fixed PermissionError when using syncDbAfterWrite. (PR#1857)

  5. Fixed MpiDirectoryChanger. (PR#1853)

  6. Changed data type of thKernel setting from bool to str in ThermalHydraulicsPlugin. (PR#1855)

  7. Update height of fluid components after axial expansion. (PR#1828)

  8. Rotate hexagonal assembly patches correctly on facemap plots. (PR#1883)

  9. Material theoretical density is serialized to and read from database. (PR#1852)

  10. Removed broken and unused column in summarizeMaterialData. (PR#1925)

  11. Fixed hex block rotation in plotBlockDiagram. (PR#1926)

  12. Fixed edge case in assemblyBlueprint._checkParamConsistency(). (PR#1928)

  13. Fixed wetted perimeter for hex inner ducts. (PR#1985)

  14. Fixing number densities when custom isotopics and material properties are combined. (PR#1822)

4.2.2.4. Quality Work

  1. Removing deprecated code axialUnitGrid. (PR#1809)

  2. Refactoring axialExpansionChanger. (PR#1861)

  3. Raising a ValueError when Database.load() fails. (PR#1940)

  4. Making axial expansion-related classes more extensible. (PR#1920)