Skip to content

Conversation

sigtryggur-hauksson
Copy link

In the current version of OpenMC, the Bateman equation includes loss terms due to spontaneous fission (as part of the total decay rate), but does not include gain terms where fission products are created in spontaneous fission. This development introduces such gain terms and modifies classes and methods in the deplete module accordingly. This is relevant for certain applications at low power with nuclides that have a relatively high rate of spontaneous fission.

The changes in the deplete module are the following:

  • Attributes in the Chain and Nuclide classes were added for spontaneous fission. Furthermore, function replace_missing_sfy was added in chain.py.
  • The from_endf method can now read in spontaneous fission yield (sfy) library files and include them in a Chain object.
  • Spontaneous fission is included when reading or writing xml files (modifications to methods from_xml and to_xml_element in Nuclide).
  • Allow for validation and reduction of Chain objects that include spontaneous fission (modifications to methods reduce in Chain and validate in Nuclide).
  • Include spontaneous fission yields in the Bateman equation (modifications to the method form_matrix in Chain)

Furthermore, the documentation has been modified (see beginning of Sec. 3.9.3, "Energy deposition" in Sec. 4.10.1 and addition to the discussion of Chain and Nuclide in Sec. 6.4).

A few implementation choices might require discussion:

  • By default, spontaneous fission yields are included in the Bateman equation if the underlying chain includes them. These yields can be turned off with the flag openmc.deplete.chain.INCLUDE_SPONT_FISSION. (Of course, sponteneous fission yields are omitted if a chain from an xml file does not include spontaneous fission, or if a chain is created with from_endf without including sfy files.)

  • Typically, endf libraries only include sfy files for a few nuclides. Nevertheless, our implementation includes fission yields for all nuclides that have a non-zero sf branching fraction. This is done by copying spontaneous fission yields from other nuclides:

  1. Firstly, it is checked whether the corresponding metastable state has sf yields.
  2. Then, it is checked whether nuclides with the same N but higher Z have sf yields.
  3. Then, whether nuclides with the same N but lower Z have sf yields.
  4. Lastly, if none of the above choices results in sf yields, the U238 sf yields are copied.
    This procedure is implemented in the function replace_missing_sfy in chain.py. It should be noted that an analogous procedure is used for neutron-induced fission in replace_missing_fpy in the current version of OpenMC.
  • It was decided to use the classes FissionYieldDistribution and FissionYield, that were created for neutron-induced fission, for spontaneous fission as well. However, these classes require energy values which is always set to float('Inf') in instances for spontaneous fission.

Further information can be found in the issues on my GitHub page (sigtryggur-hauksson).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant