armi.physics.neutronics.fissionProductModel.fissionProductModel module¶
Fission product model
All blocks have a _lumpedFissionProducts attribute that points to a
LumpedFissionProductCollection
.
The LFP collection may be global or each block may have its own.
The collection may have multiple LFPs from various parents or just one single one.
This module is the shepherd of the block’s _lumpedFissionProducts attribute.
All other modules can just assume there’s a LFP collection and use it as needed.
Examples
from armi.physics.neutronics.fissionProductModel import fissionProductModel fpInterface = fissionProductModel.FissionProductModel() lfp = fpInterface.getGlobalLumpedFissionProducts() lfp[‘LFP35’] lfp35 = lfp[‘LFP35’] lfp35.printDensities(0.05) lfp35.values() allFPs = [(fpY, fpNuc) for (fpNuc,fpY) in lfp35.items()] allFPs.sort() lfp35.keys()
-
armi.physics.neutronics.fissionProductModel.fissionProductModel.
describeInterfaces
(_cs)[source]¶ Function for exposing interface(s) to other code
-
class
armi.physics.neutronics.fissionProductModel.fissionProductModel.
FissionProductModel
(r, cs)[source]¶ Bases:
armi.interfaces.Interface
Code interface that coordinates the fission product model on the reactor.
Construct an interface.
The
r
andcs
arguments are required, but may beNone
, where appropriate for the specificInterface
implementation.- Parameters
r (Reactor) – A reactor to attach to
cs (Settings) – Settings object to use
- Raises
RuntimeError – Interfaces derived from Interface must define their name
-
name
= 'fissionProducts'¶
-
property
_useGlobalLFPs
¶
-
property
_fissionProductBlockType
¶ Set the block type that the fission products will be applied to.
Notes
Some Monte Carlo codes require all nuclides to be consistent in all materials when assemblies are shuffled. This requires that fission products be consistent across all blocks, even if fission products are not generated when the block is depleted.
-
setAllBlockLFPs
(blockType=None, setMaterialsLFP=False)[source]¶ Set ALL the block _lumpedFissionProduct attributes
Can set them to global or turns on independent block-level LFPs if requested
sets block._lumpedFissionProducts to something other than the global.
- Parameters
blockType (Flags, optional) – this is the type of block that the global lumped fission product is being applied to. If this is not provided it will get the default behavior from
self._fissionProductBlockType
.setMaterialsLFP (bool, optional) – this is a flag to tell the method whether or not to try to apply the global lumped fission product to the component and thereby material – this is only compatable with LumpedFissionProductCompatableMaterial
Examples
self.setAllBlockLFPs(blockType=’fuel’) will apply the global lumped fission product or independent LFPs to only fuel type blocks
See also
armi.materials.lumpedFissionProductCompatableMaterial.LumpedFissionProductCompatableMaterial()
,armi.reactor.components.Component.setLumpedFissionProducts()
,armi.physics.neutronics.fissionProductModel.fissionProductModel.FissionProductModel.setAllBlockLFPs()
-
getGlobalLumpedFissionProducts
()[source]¶ Lookup the detailed fission product object associated with a xsType and burnup group.
See also
armi.physics.neutronics.isotopicDepletion.depletion.DepletionInterface.buildFissionProducts()
armi.reactor.blocks.Block.getLumpedFissionProductCollection()
same thing, but block-level compatible. Use this
-
setGlobalLumpedFissionProducts
(lfps)[source]¶ Lookup the detailed fission product object associated with a xsType and burnup group.
See also
terrapower.physics.neutronics.depletion.depletion.DepletionInterface.buildFissionProducts()
armi.reactor.blocks.Block.getLumpedFissionProductCollection()
same thing, but block-level compatible. Use this
-
interactBOC
(cycle=None)[source]¶ Update block groups and fg removal
Cross sections update at BOC, so we must prepare LFPs at BOC.
-
interactDistributeState
()[source]¶ Called after this interface is copied to a different (non-master) MPI node.
-
_getAllFissionProductNames
()[source]¶ Find all fission product names in the problem
Considers all LFP collections, whether they be global, block-level, or a mix of these.
sets fissionProductNames, a list of nuclide names of all the fission products
-
updateFissionGasRemovalFractions
()[source]¶ Synchronize fission gas removal fractions of all LFP objects with the reactor state.
The block parameter
fgRemoval
is adjusted by fuel performance modules and is applied here.If the
makeAllBlockLFPsIndependent
setting is not activated (default), the global lump gets the flux-weighted average of all blocks. Otherwise, each block gets its own fission gas release fraction applied to its individual LFPs. For MCNP restart cases, it is recommended to activate themakeAllBlockLFPsIndependent
setting.Notes
The CrossSectionGroupManager does this for each XSG individually for lattice physics, but it’s important to keep these up to date as well for anything else that may be interested in fission product information (e.g. MCNP).
See also
armi.physics.neutronics.crossSectionGroupManager.AverageBlockCollection.getRepresentativeBlock()