Zones overhaul #811
Replies: 4 comments 4 replies
-
|
Thanks to @john-science for helping to refine the above requirements. The feature branch for this overhaul is: https://github.com/terrapower/armi/tree/zones_overhaul |
Beta Was this translation helpful? Give feedback.
-
|
Awesome! Let's try and organize our work a bit. Just edit this comment and put your name next to the thing you're working on:
|
Beta Was this translation helpful? Give feedback.
-
Minor Requirement ChangeAfter looking at the code, I think we can simplify our design significantly if we allow a This would include where we read in Zone definitions. So, this isn't as simple as the old "Assembly-only" pathway, but it is worlds simpler than our original idea of allowing Component-level Zones. |
Beta Was this translation helpful? Give feedback.
-
|
Also, @joshuavictorchen , I note that we already have logic in the code base for manually defining armi/armi/settings/fwSettings/globalSettings.py Lines 139 to 149 in e336bad And we even check for manual zone definitions: armi/armi/operators/settingsValidation.py Lines 336 to 345 in e336bad And they are really simple Lines 482 to 491 in e336bad I think we can re-use nearly all of that. The only thing we need to add in is some way to say if the We will need to change the default to |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
The
armi.reactor.zonesmodule is very SAS4A/SASSYS-1-specific and is in need of an overhaul - see this issue.This discussion serves to communicate these requirements and manage progress/collaboration on implementation.
Note: In the following bullets we define the term
Itemto be either anAssemblyor aBlock. And probably, oneZonecollection will have to be defined as allAssemblyobjects or allBlockobjects, with no mixing (just to make things easier).Requirements
The following requirements describe what a good
zonesmodule should look like.zonesshould be an attribute of theCorethat tracksItemlocations AND the names of theItemsin those locationsZoneswill be affected if anyItems are moved, but theItems themselves can be perturbed without disturbing theZones(i.e., updating theirblocks’ reactivity coefficient parameters)zoneswill be to contain a list/set/collection ofZoneobjects.Zoneshould have the following attributes:name(string)locations(dict of locations and correspondingItemnames)length(int of count of locations)id(hash based on thelocationsattribute), or ahash()functionZonesmay be mutable, but theiridattributes should be updated if any changes are made to them, in order to:Itemconfiguration as expected by the SAS modelZoneson the fly if needed (i.e., for sensitivity studies)Zonesmay have the following utility functions:addItem(item, toZone)transferItem(item, fromZone, toZone)removeItem(item, fromZone)checkDuplicates()zoningStrategy()<-- abstract method?Itemobjects described by theZoneZonesshould be generated whenever a reactor database is created or loadedZonesshould be able to be written to/read from the databaseZonesshould NOT be able to contain duplicateItemsZonesshould NOT need to be contiguous or contain contiguousItemsZonesshould NOT need to be comprehensive (i.e.,zonesdon't have to contain ALL of theItemsin theCore)Implementation details:
ZonesPluginorInterfaceor something easyBeta Was this translation helpful? Give feedback.
All reactions