armi.physics.neutronics.fissionProductModel.fissionProductModel module
This module contains the implementation of the FissionProductModel interface.
This FissionProductModel class implements the management of fission products within
the reactor core and can be extended to support more general applications. Currently, the
fission product model supports explicit modeling of fission products in each of the
blocks/components, independent management of lumped fission products for each
blocks/components within the core, or global management of lumped fission products
where the fission products between all blocks/components are shared and are modified
together.
Within the framework, there is a coupling between the management of the fission products through this model to neutronics evaluations of flux and depletion calculations.
When using a Monte Carlo solver, such as MCNP (i.e., there is an interface that is attached to the operator that has a name of “mcnp”), the fission products will always be treated independently and fission products (either explicit or lumped) will be added to all blocks/components in the core. The reason for this is that Monte Carlo solvers, like MCNP, may implement their own coupling between flux and depletion evaluations and having the initialization of these fission products in each block/component independently will allow that solver to manage the inventory over time.
When determining which fission product model to use (either explicit or lumped) it is important to consider which cross section data is available to the flux and/or depletion solvers, and what level of fidelity is required for the analysis. This is where decisions as a developer/user need to be made, and the implementation of this specific model may not be, in general, accurate for any reactor system. It is dependent on which plugins are implemented and the requirements of the individual flux/depletion solver.
Lumped fission products are generally useful for fast reactor applications, especially
in fuel cycle calculations or scoping evaluations where the tracking of the detailed
nuclide inventory would not have substantial impacts on core reactivity predictions.
This is typically done by collapsing all fission products into lumped nuclides, like
LFP35, LFP38, LFP39, LFP40, and LFP41. This is the implementation
in the framework, which is discussed a bit more in the fpModel setting. These
lumped fission products are separated into different bins that represent the fission
product yields from U-235, U-238, Pu-239, Pu-240, and Pu-241/Am-241, respectively. The
exact binning of which fission events from which target nuclides is specified by the
burn-chain.yaml file, which can be modified by a user/developer. When selecting this
modeling option, the blocks/components will have these LFP nuclides in the number
density dictionaries. The key thing here is that these lumped nuclides do not exist
in nature and therefore do not have nuclear data directly available in cross section
evaluations, like ENDF/B. If the user wishes to consider these nuclides in the flux/depletion
evaluations, then cross sections for these LFP nuclides will need to be prepared. Generally
speaking, the the crossSectionGroupManager and the latticePhysicsInterface could be
used to implement this for cross section generation codes, like NJOY, CASMO, MC2-3, Serpent,
etc.
Warning
The lumped fission product model and the burn-chain.yaml data may not be directly
applicable to light water reactor systems, especially if there are strong reactivity
impacts with fission products like Xe and Sm that need to be tracked independently.
A user/developer may update the referenceFissionProducts.dat data file to exclude
these important nuclides from the lumped fission product models if need be, but this
would also require updating the burn-chain.yaml file as well as updating the
nuclideFlags specification within the reactor blueprints input.
A further simplified option for lumped fission product treatment that is available is to
treat all fission products explicitly as Mo-99. This is not guaranteed to be an accurate
treatment of the fission products from a reactivity/depletion perspective, but it is
available for quick scoping evaluations and model building.
Finally, the explicit fission product modeling aims to include as many nuclides on the
blocks/components as the user wishes to consider, but the nuclides that are modeled
must be compatible with the plugins that are implemented for the application. When using this
option, the user should look to set the fpModelLibrary setting.
If this setting is not set, then it is expected that the user will need to manually add all nuclides to the
nuclideFlagssection of the reactor core blueprints.If the
fpModelLibraryis selected then this will automatically add to thenuclideFlagsinput usingisotopicOptions.autoUpdateNuclideFlags()and this class will initialize all added nuclides to have zero number densities.
Warning
The explicit fission product model is being implemented with the vision of using
generating multi-group cross sections for nuclides that are added with the
fpModelLibrary setting with follow-on depletion calculations that will be managed by
a detailed depletion solver, like ORIGEN. There are many caveats to how this model
is initialized and may not be an out-of-the-box general solution.
- 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:
InterfaceCoordinates the fission product model on the reactor.
- name: str | None = 'fissionProducts'
The name of the interface. This is undefined for the base class, and must be overridden by any concrete class that extends this one.
- setAllComponentFissionProducts()[source]
Initialize all nuclides for each
DEPLETABLEcomponent in the core.Notes
This should be called when explicit fission product modeling is enabled to ensure that all isotopes are initialized on the depletable components within the reactor data model so that there is some density as a starting point.
When explicit fission products are enabled and the user has not already included all fission products in the blueprints (in
nuclideFlags), thefpModelLibrarysetting is used to autofill all the nuclides in a given library into theblueprints.allNuclidesInProblemlist. All nuclides that were not manually initialized by the user are added to theDEPLETABLEcomponents throughout every block in the core.The
DEPLETABLEflag is based on the user adding this explicitly in the blueprints, or is based on the user setting a nuclide toburn: truein the blueprintnuclideFlags.
- setAllBlockLFPs()[source]
Sets all the block lumped fission products attributes.
See also
armi.reactor.components.Component.setLumpedFissionProducts
- getGlobalLumpedFissionProducts()[source]
Lookup the detailed fission product object associated with a xsType and burnup group.
See also
armi.physics.neutronics.isotopicDepletion.depletion.DepletionInterface.buildFissionProductsarmi.reactor.blocks.Block.getLumpedFissionProductCollectionsame 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
armi.reactor.blocks.Block.getLumpedFissionProductCollectionsame thing, but block-level compatible. Use this