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.
-
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.
-
getZoneAxialPowerDistribution
(zone)[source]¶ Return a list of powers in watts of the axial levels of zone.
-
property
-
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.
_buildZonesByOrifice
(core, cs)[source]¶ Group fuel assemblies by orifice zones.
Each zone will contain all FAs with in same orifice coefficients.
- Returns
faZonesForSafety – dictionary of zone name and list of FAs name in that zone
- Return type
Notes
It separate oxide and LTA assembly into their own zones
-
armi.reactor.zones.
_buildZonesforEachFA
(core, cs)[source]¶ Split every fuel assembly in to a zones for safety analysis.
- Returns
reactorChannelZones – dictionary of each channel as a zone
- Return type
-
armi.reactor.zones.
_buildRingZoneZones
(core, cs)[source]¶ Build zones based on annular rings.
Notes
Originally, there were ringZones. These were defined by a user-input list of upper bound rings and the zones were just annular regions between rings. They were used to compute reactivity coefficients and whatnot. Then one day, it became clear that more general zones were required. To support old code that used ringZones, this code produces modern zones out of the ringZone input.
It creates zones called ring-0, ring-1, etc. for each zone.
If no zones are defined, one big ringzone comprising the whole core will be built.
See also
getRingZoneAssemblies()
gets assemblies in a ringzone
getRingZoneRings()
computes rings in a ringzone
getAssembly()
accesses assemblies in a zone the new way.
-
armi.reactor.zones.
_buildAssemTypeZones
(core, cs, typeSpec=None)[source]¶ Builds zones based on assembly type labels.
Notes
Creates a zone for each assembly type. All locations occupied by a certain type of assembly become a new zone based on that type.
For example, after this call, all ‘feed fuel a’ assemblies will reside in the ‘feed fuel a’ zone.
Useful for building static zones based on some BOL core layout.
-
armi.reactor.zones.
splitZones
(core, cs, zones)[source]¶ Split the existing zone style into smaller zones via number of blocks and assembly type.
- Parameters
- Returns
zones
- Return type
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
- 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.