armi.nucDirectory.transmutations module¶
This module contains the definition of Transmutation
and Decay
classes.
The mappings between active nuclides during transmutation and decay are described in a
burn-chain.yaml
file pointed to by the burnChainFileName
setting. This file contains one entry per nuclide that can transmute or decay that
look similar to the example below:
U238:
- nuSF: 2.0000
- transmutation:
branch: 1.0
products:
- NP237
type: n2n
- transmutation:
branch: 1.0
products:
- LFP38
type: fission
- transmutation:
branch: 1.0
products:
- NP239
- PU239
type: nGamma
- decay:
branch: 5.45000e-07
halfLifeInSeconds: 1.4099935680e+17
products:
- LFP38
type: sf
This example defines 3 transmutations (an (n,2n)
reaction, an (n,fission)
reaction, an
(n,gamma
)`` reaction), and a spontaneous fission decay reaction with a very low branching
ratio. Valid reaction type
values are listed in Transmutation
and DecayMode
.
The branch
entry determines the fraction of the products of a given reaction that will end up
in a particular product. The branches must never sum up to anything other than 1.0.
The products
entry is a list, but only one entry will be the actual product. The list defines
a preference order. For example, if NP239
is being tracked as an active nuclide in the problem
it will be the product of the nGamma
reaction above. Otherwise, U238
will transmute directly
to the alternate product, PU239
.
Warning
If you track very short-lived decays explicitly then the burn matrix becomes very ill-conditioned and numerical solver issues can result. Specialized matrix exponential solvers (e.g. CRAM [1]) are required to get adequate solutions in these cases [2].
The example above also defines a nuSF
item, which is how many neutrons are emitted per spontaneous
fission. This is used for intrinsic source term calculations.
- [1] Pusa, Maria, and Jaakko Leppanen. “Computing the matrix exponential in burnup calculations.”
Nuclear science and engineering 164.2 (2010): 140-150.
- [2] Moler, Cleve, and Charles Van Loan. “Nineteen dubious ways to compute the exponential of a matrix.”
SIAM review 20.4 (1978): 801-836.
- class armi.nucDirectory.transmutations.Transmutable(parent, dataDict)[source]¶
Bases:
object
Transmutable base class.
- Variables
~Transmutable.parent (NuclideBase) – The parent nuclide in this reaction.
~Transmutable.type (str) – The type name of reaction (e.g.
n2n
,fission
, etc.)~Transmutable.productNuclides (list) – The names of potential product nuclides of this reaction, in order of preference. Multiple options exist to allow the library to specify a transmutation to one nuclide if the user is modeling that nuclide, and other ones as fallbacks in case the user is not tracking the preferred product. Only one of these products will be created.
~Transmutable.productParticle (str) – The outgoing particle of this reaction. Could be HE4 for n,alpha, etc. Default is None.
~Transmutable.branch (float) – The fraction of the time that this transmutation occurs. Should be between 0 and 1. Less than 1 when a decay or reaction can branch between multiple productNuclides. Do not make this >1 to get more than one product because it scales the reaction cross section which will double-deplete the parent.
Notes
These are used to link two
NuclideBase
objects through transmutation or decay.See also
- getPreferredProduct(libraryNucNames)[source]¶
Get the index of the most preferred transmutation product/decay daughter.
Notes
The ARMI burn chain is not a full burn chain. It short circuits shorter half-lives, and uses lumped nuclides as catch-all objects for things that just sit around. Consequently, the “preferred” product/daughter may not be actual physical product/daughter.
- class armi.nucDirectory.transmutations.Transmutation(parent, dataDict)[source]¶
Bases:
armi.nucDirectory.transmutations.Transmutable
A transmutation from one nuclide to another.
Notes
The supported transmutation types include:
\(n,2n\)
fission
\(n,\gamma\) (
nGamma
)\(n,\alpha\) (
nalph
)\(n,p\) (proton) (
np
)\(n,d\) (deuteron) (
nd
)\(n,t\) (triton) (
nt
)
- class armi.nucDirectory.transmutations.DecayMode(parent, dataDict)[source]¶
Bases:
armi.nucDirectory.transmutations.Transmutable
Defines a decay from one nuclide to another.
Notes
The supported decay types are also all transmutations, and include:
\(\beta^-\) (
bmd
)\(\beta^+\) (
bpd
)\(\alpha\) (
ad
)Electron capture (
ec
)Spontaneous fission (
sf
)
Of note, the following are not supported:
Internal conversion
Gamma decay