armi.reactor.zones module

A Zone object is a collection of locations in the Core. A Zones object is a collection of Zone objects. Together, they are used to conceptually divide the Core for analysis.

class armi.reactor.zones.Zone(name: str, locations: ~typing.Optional[~typing.List] = None, zoneType: type = <class 'armi.reactor.assemblies.Assembly'>)[source]

Bases: object

A group of locations in the Core, used to divide it up for analysis. Each location represents an Assembly or a Block.

VALID_TYPES = (<class 'armi.reactor.assemblies.Assembly'>, <class 'armi.reactor.blocks.Block'>)
addLoc(loc: str) None[source]

Adds the location to this Zone.

Parameters:

loc (str) – Location within the Core.

Notes

This method does not validate that the location given is somehow “valid”. We are not doing any reverse lookups in the Reactor to prove that the type or location is valid. Because this would require heavier computation, and would add some chicken-and-the-egg problems into instantiating a new Reactor.

Return type:

None

removeLoc(loc: str) None[source]

Removes the location from this Zone.

Parameters:

loc (str) – Location within the Core.

Notes

This method does not validate that the location given is somehow “valid”. We are not doing any reverse lookups in the Reactor to prove that the type or location is valid. Because this would require heavier computation, and would add some chicken-and-the-egg problems into instantiating a new Reactor.

Return type:

None

addLocs(locs: List) None[source]

Adds the locations to this Zone.

Parameters:

items (list) – List of str objects

removeLocs(locs: List) None[source]

Removes the locations from this Zone.

Parameters:

items (list) – List of str objects

addItem(item: Union[Assembly, Block]) None[source]

Adds the location of an Assembly or Block to a zone.

Parameters:

item (Assembly or Block) – A single item with Core location (Assembly or Block)

removeItem(item: Union[Assembly, Block]) None[source]

Removes the location of an Assembly or Block from a zone.

Parameters:

item (Assembly or Block) – A single item with Core location (Assembly or Block)

addItems(items: List) None[source]

Adds the locations of a list of Assemblies or Blocks to a zone.

Parameters:

items (list) – List of Assembly/Block objects

removeItems(items: List) None[source]

Removes the locations of a list of Assemblies or Blocks from a zone.

Parameters:

items (list) – List of Assembly/Block objects

class armi.reactor.zones.Zones[source]

Bases: object

Collection of Zone objects.

Build a Zones object.

property names: List

Ordered names of contained zones.

Returns:

Alphabetical collection of Zone names

Return type:

list

addZone(zone: Zone) None[source]

Add a zone to the collection.

Parameters:

zone (Zone) – A new Zone to add to this collection.

Return type:

None

addZones(zones: List) None[source]

Add multiple zones to the collection, then validate that this Zones collection still make sense.

Parameters:

zones (List (or Zones)) – A multiple new Zone objects to add to this collection.

Return type:

None

removeZone(name: str) None[source]

Delete a zone by name.

Parameters:

name (str) – Name of zone to remove

Return type:

None

removeZones(names: List) None[source]

Delete multiple zones by name.

Parameters:

names (List (or names)) – Multiple Zone names to remove from this collection.

Return type:

None

checkDuplicates() None[source]

Validate that the the zones are mutually exclusive.

That is, make sure that no item appears in more than one Zone.

Return type:

None

getZoneLocations(zoneNames: List) Set[source]

Get the location labels of a particular (or a few) zone(s).

Parameters:

zoneNames (str, or list) – the zone name or list of names

Returns:

zoneLocs – List of location labels of this/these zone(s)

Return type:

set

getAllLocations() Set[source]

Return all locations across every Zone in this Zones object.

Returns:

A combination set of all locations, from every Zone

Return type:

set

findZoneItIsIn(a: Union[Assembly, Block]) Optional[Zone][source]

Return the zone object that this Assembly/Block is in.

Parameters:

a (Assembly or Block) – The item to locate

Returns:

zone

Return type:

Zone object that the input item resides in.

sortZones(reverse=False) None[source]

Sorts the Zone objects alphabetically.

Parameters:

reverse (bool, optional) – Whether to sort in reverse order, by default False

summary() None[source]

Summarize the zone defintions clearly, and in a way that can be copy/pasted back into a settings file under “zoneDefinitions”, if the user wants to manually re-use these zones later.

Examples

zoneDefinitions: - ring-1: 001-001 - ring-2: 002-001, 002-002 - ring-3: 003-001, 003-002, 003-003