4.6. Release Notes for ARMI 0.2
These are the release notes for past versions of ARMI, created before our SCR process. They are preserved here for historical record.
4.6.1. ARMI v0.2.9
Release Date: 2023-09-27
4.6.1.1. What’s new in ARMI
Moved the
Reactorassembly number from the global scope to aParameter. (PR#1383)Removed the global
Settingsobject,getMasterCs(), andsetMasterCs(). (PR#1399)Moved the Spent Fuel Pool (
sfp) from theCoreto theReactor. (PR#1336)Made the
sfpa child of theReactorso it is stored in the database. (PR#1349)Broad cleanup of
Parameters: filled in all empty units and descriptions, removed unused params. (PR#1345)Updated some parameter definitions and defaults. (PR#1355)
Removed redundant
Material.namevariable. (PR#1335)Added
powerDensityas a high-level alternative topowerto configure aReactor. (PR#1395)Added SHA1 hashes of XS control files to the welcome text. (PR#1334)
4.6.1.2. Build changes
Moved from
setup.pytopyproject.toml. (PR#1409)Add python 3.11 to ARMI’s CI testing GH actions. (PR#1341)
Put back
avgFuelTempblock parameter. (PR#1362)Make cylindrical component block collection less strict about pre-homogenization checks. (PR#1347)
Updated some parameter definitions and defaults. (PR#1355)
Make the SFP a child of the reactor so it is stored in database. (PR#1349)
Update black to version 22.6. (PR#1396)
Added Python 3.11 to ARMI’s CI on GH actions. (PR#1341)
Updated
blackto version 22.6. (PR#1396)Add a _getNucTempHelper method for CylindricalComponentsAverageBlockCollection. (PR#1363)
4.6.1.3. Bug fixes
4.6.2. ARMI v0.2.8
Release Date: 2023-06-21
4.6.2.1. What’s new in ARMI
Added
Composite.sort()to allow the user to recursively sort any part of theReactor. (PR#1280)Switching from
pylintto therufflinter. (PR#1296)Move cross section group manager Interface stack position to be just before lattice physics. (PR#1288)
Add
interactCoupledmethod forSnapshotInterface. (PR#1294)Calculate weighted-average percent burnup of
BlockCollections. (PR#1265)Add method
sortAssemsByRingto sortReactorassemblies by spatial location (interior first). (PR#1320)
4.6.2.2. Bug fixes
Changed
units.FLOAT_DIMENSION_DECIMALSfrom 10 to 8. (PR#1183)Improved
HexBlock.getWettedPerimeter()to include wire. (PR#1299)Fixed a bug in the ISOTXS file name used for snapshots. (PR#1277)
Fix a bug in uniform mesh decusping when assemblies of same type have drastically different height. (PR#1282)
Sort
ComponentsonrepresentativeBlockfor consistency check. (PR#1275)
4.6.3. ARMI v0.2.7
Release Date: 2023-05-24
4.6.3.1. What’s new in ARMI
The method
Material.density3is now calleddensity, and the olddensityis now calledpseudoDensity. (PR#1163)Removed
metadatasetting section, and createdversions. (PR#1274)Use
minimumNuclideDensitysetting when generating macroscopic XS. (PR#1248)Introduce new
LatticePhysicsFrequencysetting to control lattice physics calculation. (PR#1239)Added new setting
assemFlagsToSkipAxialExpansionto enable users to list flags of assemblies to skip axial expansion. (PR#1235)Added documentation for the thermal expansion approach used in ARMI. (PR#1204)
Use
TemporaryDirectoryChangerforexecuter.run()so dirs are cleaned up during run. (PR#1219)New option
copyOutputfor globalFluxInterface to not copy output back to working directory. (PR#1218, PR#1227)Executer class has a
dcTypeattribute to define the type ofDirectoryChangerit will use. (PR#1228)Enabling one-way (upwards) axial expansion of control assemblies. (PR#1226)
Implement control rod decusping option for uniform mesh converter. (PR#1229)
createRepresentativeBlocksFromExistingBlocksnow returns the mapping of original to new XS IDs. (PR#1217)Added a capability to prioritize
MpiActionexecution and exclusivity. (PR#1237)Improve support for single component axial expansion and general cleanup of axial expansion unit tests. (PR#1230)
New cross section group representative block type for 1D cylindrical models. (PR#1238)
Store the axial expansion target component name as a block parameter. (PR#1256)
When using non-uniform mesh, detailed fission/activation products have cross sections generated to avoid blocks without xs data. (PR#1257)
Fix a bug in database comparison. (PR#1258)
Introduce new LatticePhysicsFrequency setting to control lattice physics calculation. (PR#1239)
Made sure all material classes could be resolved via name. (PR#1270)
Read flux directly from output into Gamma uniform mesh instead of mapping it in from block params. (PR#1213)
Forced GAMISO/PMATRX file path extensions to be lower case for linux support. (PR#1216)
4.6.3.2. Bug fixes
4.6.4. ARMI v0.2.6
Release Date: 2023-02-09
4.6.4.1. What’s new in ARMI
The
Materialclass no longer subclassesComposite. (PR#1062)Froze the NumPy version to <= 1.23.5. (PR#1035) to continue to support NumPy jagged arrays in the DatabaseInterface.
Split 3 classes in
database3.pyinto 3 files. (PR#955)Split algorithms specific to hex assemblies out of
FuelHandler. (PR#962)Added 4614 nuclides to decouple the loading of RIPL-3 data from the standard framework run. (PR#998)
Overhaul of the tight coupling routine in ARMI, and removal of
looseCouplingsetting. (PR #1033)Added
savePhysicsFilessetting to copy physics kernel I/O to directories organized by cycle and time step (e.g., c2n1). (PR#952)Add
pinQuantitiesparameter category for block params that have spatial distribution.Use
r.core.p.axialMeshinstead ofr.core.refAssem.getAxialMesh()for the uniform mesh converter. (PR#959)Add group structures for 21- and 94-groups used in photon transport.
Add block parameter,
fuelCladLocked, to track whether or not the fuel and clad are locked. (PR#1038)An explicit fission product modeling option was added. (PR#1022)
Axially expand from cold to hot before deepcopy of assemblies into reactor; improving speed. (PR#1047)
Add a how-to on restart calculations in the docs.
General improvements to efficiency in uniform mesh conversion. (PR#1042)
Allow MCNP material card number to be defined after the card is written. (PR#1086)
Refine logic for
Block.getNumPins()to only count components that are actually pins. (PR#1098)Improve handling of peak/max parameters by the
UniformMeshConverterparameter mapper. (PR#1108)Calculate block kgHM and kgFis on core loading and after shuffling. (PR#1136)
Calculate block
PuFracon core loading and after shuffling. (PR#1165)Add setting
cyclesSkipTightCouplingInteractionto skip coupling interaction on specified cycles. (PR#1173)Remove unused
HCFcoretypesetting. (PR#1179)
4.6.4.2. Bug fixes
Fixed
referenceBlockAxialMeshandaxialMeshduring process loading. (PR#980)Fixed deadelines in MPI cases due to barriers in temp directory changers.
Fixed the material namespace order for
test_axialExpansionChanger.pypersisting after tests. (PR#1046)Fixed the gaseous fission products not being removed from the core directly, but instead the fission yields within the lumped fission products were being adjusted. (PR#1022)
Fixed non-fuel depletable components not being initialized with all nuclides with the
explicitFissionProductsmodel. (PR#1067)Fixed consistency between cross section group manager and lattice physics interface for tight coupling. (PR#1118)
Fixed numerical diffusion in uniform mesh converter that affects number densities and cumulative parameters like DPA. (PR#992)
Fix the formula to calculate
b.p.puFrac. (PR#1168)Fixed
Material.densityTimesHeatCapacity(), moving from pseudo-density to physical density. (PR#1129)Fixed
TD_fracmodification on UraniumOxide and MOX was not being applied correctly.Fixed Magnessium density curve. (PR#1126)
Fixed Potassium density curve. (PR#1128)
Fixed Concrete density curve. (PR#1131)
Fixed Copper density curve. (PR#1150)
Fixed
Component.density. (PR#1149)Fixed error where a non-float value could be assigned to a material’s mass fraction dictionary. (PR#1199)
Fixed interface/event
runLog.headerfor tight coupling. (PR#1178)Fixed circular import bug in
reactors.pycaused by importing settings constants. (PR#1185)
4.6.5. ARMI v0.2.5
Release Date: 2022-10-24
4.6.5.1. What’s new in ARMI
Cleanup of stale
coveragercfile. (PR#923)Added medium writer style option to
SettingsWriter. Added it as arg to modify CLI. (PR#924), and to clone CLI (PR#932).Update the EntryPoint class to provide user feedback on required positional arguments. (PR#922)
Overhaul
reactor.zonestooling and remove application-specific zoning logic. (PR#943)
4.6.5.2. Bug fixes
Adjusted
density3inarmi/materials/b4C.pyto include the theoretical density. (PR#942)Fixed bug in
fastFluxblock parameter mapping in theUniformMeshConverterby applying it to thedetailedAxialExpansioncategory.Fixed issue where shuffles might duplicate in restart runs.
4.6.6. ARMI v0.2.4
Release Date: 2022-10-03
4.6.6.1. What’s new in ARMI
Added new
UserPluginfunctionality.Introduced
axial expansion changer.Greatly improved the
UniformMeshGeometryConverter.Made the min/max temperatures of
Materialcurves discoverable.Removed the
PyYamldependency.Changed the default Git branch name to
main.Moved math utilities into their own module.
Moved
newReportsinto their final location inarmi/bookkeeping/report/.Removed
_swapFluxParammethod. (PR#665)Removed the last usage of
settingsRules; now only usesettingsValidation.Removed separate blueprints in snapshot runs, they must come from the database. (PR#872 https://github.com/terrapower/armi/pull/872)
Added reporting of neutron and gamma energy groups in the XS library
__repr__.Updated NHFLUX reader to store VARIANT data that was being discarded.
Store thermally expanded block heights at BOL in
armi/reactor/reactors.py::Core::processLoading.Added neutronics settings:
innersandoutersfor downstream support.Removed unused Thermal Hydraulics settings.
Replaced setting
stationaryBlockswithstationaryBlockFlagssetting. (PR#665))Changed the default value of the
trackAssemssetting toFalse.Add setting
inputHeightsConsideredHotto enable thermal expansion of assemblies at BOL.
4.6.6.2. Bug fixes
Fixed issues finding
ISOXXfiles cross-platform.Fixed issues in
growToFullCore.Fixed issue in the ARMI memory profiler.
Fixed issue in linear expansion in
Alloy200.Fixed issue in
armi/reactor/components/complexShapes.py::Helix::getCircleInnerDiameterFixed issue with axial expansion changer in
armi/reactor/reactors.py::Core::processLoading.Fixed issue in how number densities are initialized for components.
Fixed issue in
armi/cases/case.py::copyInterfaceInputsFixed issue in
armi/reactor/components/component.py::getReacFixed issue in
armi/reactor/converters/uniformMesh.pywas clearing out unchanged param data.Fixed issue where components were different if initialized through blueprints vs init.
Fixed issue where component mass was conserved in axial expansion instead of density. (PR#846)
Fixed issue in
HexBlock::rotatePinsfailed to modifypinLocationparam. (#855)Fixed issue in
Core::_applyThermalExpansionfailed to callblock.completeInitiaLoading. (#885)Fixed issue where a validator would complain both simple and detailed cycles settings were used.
Fixed issue where
getReactionRates()was not accounting for burnup-dependent cross-sections.
4.6.7. ARMI v0.2.3
Release Date: 2022-02-08
4.6.7.1. What’s new in ARMI
Upgrading the version of NumPy for a security alert. (PR#530)
Upgraded ThoriumOxide material. (PR#548)
Upgraded Lithium material. (PR#546)
Improved
Helixclass. (PR#558)
Bug fixes ^^^^^^^^- #. Fixed issue where UML diagrams weren’t being generated in docs. (#550) #. Fixed issue with Inconel Alloy 617. (PR#557)
4.6.8. ARMI v0.2.2
Release Date: 2022-01-19
What’s new in ARMI v0.2.2
^^^^^^^^^^^^^^^^^^^^^^^^-
#. Improved type hinting.
#. Flushed out the ability to build the docs as PDF.
#. Material modifications can now be made per-component.
#. The loadOperator method now has the optional allowMissing argument.
4.6.8.1. Bug fixes
Fixed issue where copying a
Settingwith a defined list of options would throw an error. (PR#540)
4.6.9. ARMI v0.2.1
Release Date: 2022-01-13
4.6.9.1. What’s new in ARMI v0.2.1
Added new reference data for lumped fission products. (#507)
4.6.9.2. Bug fixes
4.6.10. ARMI v0.2.0
Release Date: 2021-11-19
The API has started to solidify, and the number of external-facing changes have started to slow down. This release is a stake in the ground on a stable API.
4.6.10.1. What’s new in ARMI v0.2.0
Made user settings immutable to avoid confusing runtime behavior.
Removed the concept of ‘facemaps’ (now replaced with more general grids).
Added ability to use module-level logging for more precise debugging.
Added ability to write full tips-up hex asciimaps.
Fixed ability to serialize grid blueprints.
Improved code coverage and linting.
Added a latin hypercube suite builder for parameter sweeps.
Added several clarifications, fixes, and updates to documentation.
Updated units labels on several parameters.
Added protections against deleting directories.
Updated spontaneous fission data.
Removed confusing Charge Fuel Pool from core.
Sped up YAML reading.
Removed localization module.
Added ANL116 energy group structure.
Added setting to control auto-creation of within-block grids.
Added new plot/summarizing capabilities.
Added ability for GUI to save map as image.
Added C5G7 compositions and dimensions to LWR tutorial.
Added 1d/2d mesh reading/writing to GEODST.
4.6.10.2. Backwards incompatible changes
There may be some new errors based on updated input checking.
4.6.10.3. Bug fixes
Fixed centering of full-symmetry Cartesian lattice maps.
Fixed issues with grids that had multi-index locations.
Removed test files from coverage check.
Fixed order of operations issue in
rotatePins.Fixed incorrect multiplicity for non-grid block components.
Many additional bugfixes and cleanups (see PR list).