armi.reactor.zones module

Zones are collections of locations.

class armi.reactor.zones.Zone(name, locations=None, symmetry=3)[source]

Bases: object

A group of locations labels useful for choosing where to shuffle from or where to compute reactivity coefficients. locations if specified should be provided as a list of assembly locations.

extend(locList)[source]
index(loc)[source]
append(obj)[source]
addAssemblyLocations(aList)[source]

Adds the locations of a list of assemblies to a zone

Parameters

aList (list) – List of assembly objects

addRing(ring, p0=None, p1=None)[source]

Adds a section of a ring (or a whole ring) to the zone

Parameters
  • ring (int) – The ring to add

  • p0 (int, optional) – beginning position within ring. Default: None (full ring)

  • p1 (int, optional) – Ending position within ring.

class armi.reactor.zones.Zones(core, cs)[source]

Bases: object

Collection of Zone objects.

Build a Zones object.

property names

Ordered names of contained zones.

update(zones)[source]

Merge with another Zones.

add(zone)[source]

Add a zone to the collection.

removeZone(name)[source]

delete a zone by name.

summary(zoneNames=None)[source]

Print out power distribution of fuel assemblies this/these zone.

getZoneAxialPowerDistribution(zone)[source]

Return a list of powers in watts of the axial levels of zone.

getZoneLocations(zoneNames)[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

list

getRingZoneRings()[source]

Get rings in each ring zone as a list of lists.

Returns

ringZones – List of lists. Each entry is the ring numbers in a ring zone. If there are no ring zones defined, returns a list of all rings.

Return type

list

findZoneAssemblyIsIn(a)[source]

Return the zone object that this assembly is in.

Parameters

a (assembly) – The assembly to locate

Returns

zone

Return type

Zone object that the input assembly resides in.

armi.reactor.zones.buildZones(core, cs)[source]

Build/update the zones.

Zones are groups of assembly locations used for various purposes such as defining SASSYS channels and reactivity coefficients.

The zoning option is determined by the zoningStrategy setting.

armi.reactor.zones.splitZones(core, cs, zones)[source]

Split the existing zone style into smaller zones via number of blocks and assembly type.

Parameters
  • core (Core) – The Core object to which the Zones belong

  • cs (Case settings) – The case settings for the run

  • zones (Zones) – The Zones to split

Returns

zones

Return type

Zones

Notes

Zones are collections of locations grouped by some user input. Calling this method transforms a collection of zones into another collection of zones further broken down by assembly type and number of blocks. Each new zone only contains assemblies of the same type and block count. any other arbitrary grouping method. A subZone is a further breakdown of a zone.

Examples

If the original zone was ringZone3 and ringZone3 contained three assemblies, one of them being a burner with nine blocks, one being a burner with 8 blocks and one control assembly with 3 blocks three splitZones would be produced and ringZone3 would be deleted. The the zones would be named ringZone3_Burner_8, ringZone3_Burner_9, ringZone3_Control_3.

armi.reactor.zones.createHotZones(core, zones)[source]

Make new zones from assemblies with the max power to flow ratio in a zone.

Parameters
  • core (Core) – The core object

  • zones (Zones) – Zones

Returns

zones

Return type

zones object

Notes

This method determines which assembly has the highest power to flow ratio in each zone. This method then removes that assembly from its original zone and places it in a new zone.