ARMI v0.2 Release Notes
ARMI v0.2.9
Release Date: 2023-09-27
What’s new in ARMI
Moved the
Reactor
assembly number from the global scope to aParameter
. (PR#1383)Removed the global
Settings
object,getMasterCs()
, andsetMasterCs()
. (PR#1399)Moved the Spent Fuel Pool (
sfp
) from theCore
to theReactor
. (PR#1336)Made the
sfp
a child of theReactor
so 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.name
variable. (PR#1335)Added
powerDensity
as a high-level alternative topower
to configure aReactor
. (PR#1395)Added SHA1 hashes of XS control files to the welcome text. (PR#1334)
Build changes
Moved from
setup.py
topyproject.toml
. (PR#1409)Add python 3.11 to ARMI’s CI testing GH actions! (PR#1341)
Put back
avgFuelTemp
block 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
black
to version 22.6. (PR#1396)Add a _getNucTempHelper method for CylindricalComponentsAverageBlockCollection. (PR#1363)
Bug fixes
ARMI v0.2.8
Release Date: 2023-06-21
What’s new in ARMI
Added
Composite.sort()
to allow the user to recursively sort any part of theReactor
. (PR#1280)Switching from
pylint
to theruff
linter. (PR#1296)Move cross section group manager Interface stack position to be just before lattice physics. (PR#1288)
Add
interactCoupled
method forSnapshotInterface
. (PR#1294)Calculate weighted-average percent burnup of
BlockCollections
. (PR#1265)Add method
sortAssemsByRing
to sortReactor
assemblies by spatial location (interior first) (PR#1320)
Bug fixes
Changed
units.FLOAT_DIMENSION_DECIMALS
from 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
Components
onrepresentativeBlock
for consistency check. (PR#1275)
ARMI v0.2.7
Release Date: 2023-05-24
What’s new in ARMI
The method
Material.density3
is now calleddensity
, and the olddensity
is now calledpseudoDensity
. (PR#1163)Removed
metadata
setting section, and createdversions
. (PR#1274)Remove unused
HCFcoretype
setting. (PR#1179)Use
minimumNuclideDensity
setting when generating macroscopic XS. (PR#1248)Introduce new
LatticePhysicsFrequency
setting to control lattice physics calculation. (PR#1239)Added new setting
assemFlagsToSkipAxialExpansion
to 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
TemporaryDirectoryChanger
forexecuter.run()
so dirs are cleaned up during run. (PR#1219)New option
copyOutput
for globalFluxInterface to not copy output back to working directory. (PR#1218, PR#1227)Executer class has a
dcType
attribute to define the type ofDirectoryChanger
it 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)
createRepresentativeBlocksFromExistingBlocks
now returns the mapping of original to new XS IDs. (PR#1217)Added a capability to prioritize
MpiAction
execution 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)
Bug fixes
ARMI v0.2.6
Release Date: 2023-02-09
What’s new in ARMI
The
Material
class 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.py
into 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
looseCoupling
setting. (PR #1033)Added
savePhysicsFiles
setting to copy physics kernel I/O to directories organized by cycle and time step (e.g., c2n1). (PR#952)Add
pinQuantities
parameter category for block params that have spatial distribution.Use
r.core.p.axialMesh
instead 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
UniformMeshConverter
parameter mapper. (PR#1108)Calculate block kgHM and kgFis on core loading and after shuffling. (PR#1136)
Calculate block
PuFrac
on core loading and after shuffling. (PR#1165)Add setting
cyclesSkipTightCouplingInteraction
to skip coupling interaction on specified cycles. (PR#1173)Remove unused HCFcoretype setting. (PR#1179)
Bug fixes
Fixed
referenceBlockAxialMesh
andaxialMesh
during process loading. (PR#980)Fixed deadelines in MPI cases due to barriers in temp directory changers.
Fixed the material namespace order for
test_axialExpansionChanger.py
persisting 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
explicitFissionProducts
model (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_frac
modification 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.header
for tight coupling. (PR#1178)Fixed circular import bug in
reactors.py
caused by importing settings constants. (PR#1185)
ARMI v0.2.5
Release Date: 2022-10-24
What’s new in ARMI
Cleanup of stale
coveragerc
file (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.zones
tooling and remove application-specific zoning logic (PR#943)
Bug fixes
Adjusted density3 in armi/materials/b4C.py to include the theoretical density. (PR#942)
Fixed bug in
fastFlux
block parameter mapping in theUniformMeshConverter
by applying it to thedetailedAxialExpansion
category.Fixed issue where shuffles might duplicate in restart runs.
ARMI v0.2.4
Release Date: 2022-10-03
What’s new in ARMI
Added new
UserPlugin
functionality.Introduced
axial expansion changer
.Greatly improved the
UniformMeshGeometryConverter
.Made the min/max temperatures of
Material
curves discoverable.Removed the
PyYaml
dependency.Changed the default Git branch name to
main
.Moved math utilities into their own module.
Moved
newReports
into their final location inarmi/bookkeeping/report/
.Removed
_swapFluxParam
method (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:
inners
andouters
for downstream support.Removed unused Thermal Hydraulics settings.
Replaced setting
stationaryBlocks
withstationaryBlockFlags
setting (PR#665))Changed the default value of the
trackAssems
setting toFalse
.Add setting
inputHeightsConsideredHot
to enable thermal expansion of assemblies at BOL.
Bug fixes
Fixed issues finding
ISOXX
files 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::getCircleInnerDiameter
Fixed 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::copyInterfaceInputs
Fixed issue in
armi/reactor/components/component.py::getReac
Fixed issue in
armi/reactor/converters/uniformMesh.py
was 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::rotatePins
failed to modifypinLocation
param. (#855)Fixed issue in
Core::_applyThermalExpansion
failed 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.
ARMI v0.2.3
Release Date: 2022-02-08
What’s new in ARMI
Bug fixes
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 optionalallowMissing
argument
Bug fixes
Fixed issue where copying a Setting with a defined list of options would throw an error (PR#540)
ARMI v0.2.1
Release Date: 2022-01-13
What’s new in ARMI v0.2.1
Added new reference data for lumped fission products (#507)
Bug fixes
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.
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
Backwards incompatible changes
There may be some new errors based on updated input checking.
Bug fixes
Fixed centering of full-symmetry Cartesian lattice maps
Fixed issues with grids that had multii-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)