armi.reactor.assemblyLists module

Module containing AssemblyList and related classes.

Assembly Lists are core-like objects that store collections of Assemblies. They were originally developed to serve as things like spent-fuel pools and the like, where spatial location of Assemblies need not be quite as precise.

Presently, the armi.reactor.reactors.Core constructs a spent fuel pool self.sfp. We are in the process of removing these as instance attributes of the Core, and moving them into sibling systems on the root armi.reactor.reactors.Reactor object.

class armi.reactor.assemblyLists.AutoFiller[source]

Bases: ABC

Class for governing automatic insertion of Assemblies when a specific Composite location isn’t requested.

This is kept separate from the AssemblyList class itself to promote composition over inheritance; reasonable implementations of auto-fill strategies will have their own state, which subclasses of AssemblyList should not have to manage.

getNextLocation(a) LocationBase[source]

Return the next automatic location.

assemblyAdded(a)[source]

Register that an assembly has been added.

This allows an AutoFiller to be notified that an assembly has been added manually.

class armi.reactor.assemblyLists.RowMajorAutoFiller(aList, nMajor)[source]

Bases: AutoFiller

AutoFiller implementation for filling a “rectangular” grid of Assemblies.

This fills the armi.reactor.grids.Grid of the associated AssemblyList by filling subsequent rows with nMajor assemblies before moving to the next row.

getNextLocation(_a)[source]
assemblyAdded(a)[source]

Do nothing.

A more optimal implementation would cache things that would be affected by this.

class armi.reactor.assemblyLists.AssemblyList(name, parent=None)[source]

Bases: Composite

A quasi-arbitrary collection of Assemblies.

The AssemblyList is similar to a Core, in that it is designed to store Assembly objects. Unlike the Core, they have far fewer convenience functions, and permit looser control over where assemblies actually live.

property r
add(assem, loc=None)[source]

Add an Assembly to the list.

Parameters:
  • assem (Assembly) – The Assembly to add to the list

  • loc (LocationBase, optional) – If provided, the assembly is inserted at that location. If it is not provided, the locator on the Assembly object will be used. If the Assembly’s locator belongs to self.spatialGrid, the Assembly’s existing locator will not be used. This is unlike the Core, which would try to use the same indices, but move the locator to the Core’s grid. With a locator, the associated AutoFiller will be used.

getAssembly(name)[source]

Get a specific Assembly by name.

count()[source]
paramCollectionType

alias of ArmiObjectParameterCollection

class armi.reactor.assemblyLists.SpentFuelPool(name, parent=None)[source]

Bases: AssemblyList

A place to put assemblies when they’ve been discharged. Can tell you inventory stats, etc.

add(assem, loc=None)[source]

Add an Assembly to the list.

Parameters:
  • assem (Assembly) – The Assembly to add to the list

  • loc (LocationBase, optional) – If provided, the assembly is inserted at that location. If it is not provided, the locator on the Assembly object will be used. If the Assembly’s locator belongs to self.spatialGrid, the Assembly’s existing locator will not be used. This is unlike the Core, which would try to use the same indices, but move the locator to the Core’s grid. With a locator, the associated AutoFiller will be used.

report()[source]
normalizeNames(startIndex=0)[source]

Renumber and rename all the Assemblies and Blocks.

Parameters:

startIndex (int, optional) – The default is to start counting at zero. But if you are renumbering assemblies across the entire Reactor, you may want to start at a different number.

Returns:

The new max Assembly number.

Return type:

int

paramCollectionType

alias of ArmiObjectParameterCollection