armi.physics.neutronics.fissionProductModel.lumpedFissionProduct module¶
The lumped fission product (LFP) module deals with representing LFPs and loading them from files.
These are generally managed by the
FissionProductModel
-
class
armi.physics.neutronics.fissionProductModel.lumpedFissionProduct.
LumpedFissionProduct
(name=None)[source]¶ Bases:
object
Lumped fission product.
The yields are in number fraction and they sum to 2.0 in general so a fission of an actinide results in one LFP, which represents 2 real FPs.
This object is a data structure and works a lot like a dictionary in terms of accessing and modifying the data.
The yields are indexed by nuclideBase – in self.yld the yield fraction is indexed by nuclideBases of the individual fission product isotopes
Examples
>>> fpd = FissionProductDefinitionFile(stream) >>> lfp = fpd.createSingleLFPFromFile('LFP39') >>> lfp[<nuclidebase for EU151>] 2.9773e-05
See also
armi.reactor.blocks.Block.getLumpedFissionProductCollection
how you should access these.
Make a LFP
- Parameters
name (str, optional) – A name for the LFP. Will be overwritten if you load from file. Provide only if you are spinning your own custom LFPs.
-
__getitem__
(fissionProduct, default=None)[source]¶ Return the FP yield of a particular FP
This allows the LFP to be accessed via indexing, like this:
lfp[fp]
- Returns
yld
- Return type
yield of the fission product. Defaults to None.
-
setGasRemovedFrac
(removedFrac)[source]¶ Set the fraction of total fission gas that is removed from this LFP.
-
getTotalYield
()[source]¶ Get the fractional yield of all nuclides in this lumped fission product
Accounts for any fission gas that may be removed.
- Returns
- Return type
total yield of all fps
-
getMassFracs
()[source]¶ Return a dictionary of mass fractions indexed by nuclide.
- Returns
massFracs – mass fractions (floats) of LFP masses
- Return type
-
getNumberFracs
()[source]¶ Return a dictionary of number fractions indexed by nuclide.
- Returns
numberFracs – number fractions (floats) of fission products indexed by nuclide.
- Return type
-
getMassFrac
(nucName=None, nuclideBase=None, useCache=True, storeCache=True)[source]¶ Return the mass fraction of the given nuclide.
- Returns
- Return type
nuclide mass fraction (float)
-
getExpandedMass
(mass=1.0)[source]¶ returns a dictionary of masses indexed by nuclide base objects
- Parameters
mass (float,) – the mass of all the expanded mass of the given LFP.
-
class
armi.physics.neutronics.fissionProductModel.lumpedFissionProduct.
LumpedFissionProductCollection
[source]¶ Bases:
dict
A set of lumped fission products
Typically there would be one of these on a block or on a global level.
-
getAllFissionProductNames
()[source]¶ Gets names of all fission products in this collection
TODO: This can use a set, continually updated from the keys() for each lfp, then converted to a list. This will change the order of the fission products, though, so should be done with care
-
getNumberDensities
(objectWithParentDensities=None, densFunc=None)[source]¶ Gets all FP number densities in collection
- Parameters
objectWithParentDensities (ArmiObject) – object (probably block) that can be called with getNumberDensity(‘LFP35’), etc. to get densities of LFPs.
densFunc (function, optional) – Optional method to extract LFP densities
- Returns
fpDensities – keys are fp names, vals are fission product number density in atoms/bn-cm.
- Return type
-
getMassFrac
(oldMassFrac=None)[source]¶ returns the mass fraction vector of the collection of lumped fission products
-
-
class
armi.physics.neutronics.fissionProductModel.lumpedFissionProduct.
SingleLumpedFissionProductCollection
[source]¶ Bases:
armi.physics.neutronics.fissionProductModel.lumpedFissionProduct.LumpedFissionProductCollection
This is a subclass of LumpedFissionProductCollection to be used when you want to collapse all the fission products into a single lumped fission product
There were numerous checks in places to ensure that a collection of fission products only had 1 lfp and this object consolidates them.
Notes
- armi.physics.neutronics.fissionProductModel.lumpedFissionProduct.FissionProductDefinitionFile.createSingleLFPFromFile
is a factory for these
-
updateYieldVector
(numberDensities=None, massFrac=None, fpFiltered=False)[source]¶ update the yield values on the single lumped fission product
-
class
armi.physics.neutronics.fissionProductModel.lumpedFissionProduct.
FissionProductDefinitionFile
(stream)[source]¶ Bases:
object
Reads a file that has definitions of one or more LFPs in it to produce LFPs
The format for this file is effectively input lines from a MC2-2 file:
13 LFP35 GE73 5 5.9000E-06 13 LFP35 GE74 5 1.4000E-05 13 LFP35 GE76 5 1.6000E-04 13 LFP35 AS75 5 8.9000E-05
and so on
Examples
>>> fpd = FissionProductDefinitionFile(stream) >>> lfps = fpd.createLFPsFromFile()
The path to this file name is specified by the
-
fpPat
= re.compile('13\\s+([A-Z]+\\d+)\\s+(......)\\s+([+-]?\\d*\\.\\d+[eEdD][+-]\\d+)')¶
-
createLFPsFromFile
()[source]¶ Read the file and create LFPs from the contents
- Returns
lfps – List of LumpedFissionProducts contained in the file
- Return type
-
createSingleLFPCollectionFromFile
(name)[source]¶ Creates a LFPCollection with only one LFP from the file
-
_splitIntoIndividualLFPLines
(lfpName=None)[source]¶ The lfp file can contain one or more LFPs. This splits them.
Ignores DUMPs. :param lfpName: Restrict to just these names if desired. :type lfpName: str, optional
- Returns
allLFPLines – each entry is a list of lines that define one LFP
- Return type
list of list
-
-
armi.physics.neutronics.fissionProductModel.lumpedFissionProduct.
lumpedFissionProductFactory
(cs)[source]¶ Build lumped fission products.
-
armi.physics.neutronics.fissionProductModel.lumpedFissionProduct.
_buildMo99LumpedFissionProduct
()[source]¶ Build a dummy MO-99 LFP collection.
This is a very bad FP approximation from a physics standpoint but can be very useful for rapid-running test cases.
-
armi.physics.neutronics.fissionProductModel.lumpedFissionProduct.
expandFissionProducts
(massFrac, lumpedFissionProducts)[source]¶ expands lumped fission products in a massFrac vector
- Parameters
massFrac (dict) –
lumpedFissionProducts (LumpedFissionProductCollection (acts like a dict)) – result of <fissionProductInterface>.getGlobalLumpedFissionProducts
- Returns
newMassFracs
- Return type
-
armi.physics.neutronics.fissionProductModel.lumpedFissionProduct.
collapseFissionProducts
(massFracs, lumpedFissionProducts, updateLumpedFissionProduct=False)[source]¶ collapses fission products into a single lumped fission product
- Parameters
massFracs (dict) –
- LumpedFissionProductCollection (acts like a dict) (lumpedFissionProducts) – result of <fissionProductInterface>.getGlobalLumpedFissionProducts
- Returns
newMassFracs
- Return type
Notes
collapsing only works if there is a ‘single lumped fission product collection’ – otherwise its confusing to determine how much of what isotope goes to which lumped fission products