snf_simulations.cask#

Calculate antineutrino spectra for spent nuclear fuel casks.

Module Contents#

Classes#

Cask

Class representing a cask of spent nuclear fuel.

Functions#

_filter_isotopes

Filter a list of isotopes to only include relevant antineutrino spectra.

Data#

API#

class snf_simulations.cask.Cask(isotope_masses: dict[str, float], initial_cooling_time: float = 0, name: str | None = None)[source]#

Class representing a cask of spent nuclear fuel.

Variables:
  • isotope_masses – The masses of each isotope in the cask. Should be a dictionary where keys are isotope names and values are the mass of the isotope in the cask (in kg).

  • initial_cooling_time – The time since the cask was removed from the reactor, in years, corresponding to the time that the isotope masses were calculated. This initial age will be subtracted from the requested cooling times when calculating the antineutrino spectrum, to account for decay during the time since removal.

  • name – An optional name for the cask.

classmethod from_tabqfile(filepath: str | pathlib.Path, total_mass: float | None = None, isotopes: collections.abc.Collection[str] | str | None = None, time_str: str | None = None, name: str | None = None) snf_simulations.cask.Cask[source]#

Create a Cask object from a FISPIN .tbQ output file.

Parameters:
  • filepath – Path to the file to load.

  • total_mass – The total mass of the cask to simulate (in kg). If None, the mass from the simulation file is used. If given, the isotopes will be scaled in proportion to the simulation mass.

  • isotopes – Optional list of isotopes to include from the file. If None, defaults to a list of selected isotopes (see DEFAULT_ISOTOPES). isotopes=”all” can be used to include all isotopes in the file.

  • time_str – Specific simulation time to extract data for. If None, the smallest time in the file is used. (see data.get_isotope_masses for details)

  • name – Optional name for the cask. If None, a name is generated from the filename.

Returns:

A Cask object with the isotope masses loaded from the file.

get_component_spectra(cooling_time: float | None = None) list[snf_simulations.spec.Spectrum][source]#

Get the individual antineutrino spectra for each isotope in the cask.

Parameters:

cooling_time – The time in years since the cask was removed from the reactor. Note that this has to be greater than or equal to the initial_cooling_time of the cask. If None, the initial_cooling_time of the cask is used.

Returns:

A list of Spectrum objects, representing the antineutrino spectra for each isotope as well as any additional isotopes created from decays since removal from the reactor.

get_total_spectrum(cooling_time: float | None = None) snf_simulations.spec.Spectrum[source]#

Calculate the total antineutrino spectrum as a Spectrum object.

Parameters:

cooling_time – The time in years since the cask was removed from the reactor. Note that this has to be greater than or equal to the initial_cooling_time of the cask. If None, the initial_cooling_time of the cask is used.

snf_simulations.cask.DEFAULT_ISOTOPES#

[‘Sr90’, ‘Y90’, ‘Pu241’, ‘Cs137’, ‘Am242’, ‘Cs135’, ‘I129’, ‘Np239’, ‘Tc99’, ‘Zr93’, ‘Ce144’, ‘Kr88’…

snf_simulations.cask._filter_isotopes(isotopes: list[str], verbose: bool = False) list[str][source]#

Filter a list of isotopes to only include relevant antineutrino spectra.