Decay Pathway Library#

The complete API can be found at f4enix.output.decay_pathways.PathwayLibrary

At Fusion For Energy, a number of activation studies was conducted using FISPACT in order to individuate which are the decay pathways that contribute to either 95% or 99% of the contact dose. These studies were run for different irradiation scenarios, spectra, materials and cooling times. A database of the results has been built and can be interrogated with simplified F4Enix methods to get lists of important pathways depending on the specific applications.

Available materials, spectra, and cooling times#

First of all let’s explore the available materials, spectra and cooling times for which data is available. These are constants that can be imported and printed using F4Enix

Materials are implemented as MaterialComposition objects. All the available ones can be found at f4enix.core.material_library

from f4enix.core.material_library import TITANIUM5

print(TITANIUM5.name) # extended name of the material
print(TITANIUM5.elem)  # elemental composition (% in mass)
print(TITANIUM5.perc)  # percentage of each element
/home/docs/checkouts/readthedocs.org/user_builds/f4enix/envs/developing/lib/python3.10/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
  from .autonotebook import tqdm as notebook_tqdm
Titanium Alloy, Grade 5
['H', 'C', 'N', 'O', 'Al', 'Ti', 'V', 'Fe']
[0.011000000000000001, 0.056999999999999995, 0.021, 0.14100000000000001, 61.25000000000001, 89.363, 4.0, 0.28300000000000003]
from f4enix.core.material_library import AVAILABLE_MATERIALS

list(AVAILABLE_MATERIALS) # list of available materials
[MaterialComposition(Pure Silver),
 MaterialComposition(W with impurities),
 MaterialComposition(Pure Lead),
 MaterialComposition(Al-6061),
 MaterialComposition(Al-Brz),
 MaterialComposition(Borated Heavy Concrete),
 MaterialComposition(Concrete),
 MaterialComposition(CuCrZr),
 MaterialComposition(Eurofer-97),
 MaterialComposition(Inconel-718),
 MaterialComposition(Nb3Sn),
 MaterialComposition(NbTi),
 MaterialComposition(SS660),
 MaterialComposition(SS316L(N)-IG),
 MaterialComposition(Microtherm),
 MaterialComposition(Titanium Alloy, Grade 5),
 MaterialComposition(Beryllium)]

Available cooling times, spectra and irradiation scenarios can be found instead at f4enix.output.decay_pathways

from f4enix.output.decay_pathways import AVAILABLE_COOLING_TIMES

print(AVAILABLE_COOLING_TIMES) # list of available cooling times
['24 h', '11.6 d', '30 d', '180 d', '230 d', '1 y', '10 y']
from f4enix.output.decay_pathways import AVAIL_SPECTRUM

list(AVAIL_SPECTRUM) # list of available spectra
[<AVAIL_SPECTRUM.FirstWall500MW: '500MW_First_Wall'>,
 <AVAIL_SPECTRUM.PortCell500MW: '500MW_Port_Cell'>,
 <AVAIL_SPECTRUM.PortInterspace500MW: '500MW_Port_Interspace'>,
 <AVAIL_SPECTRUM.N17PortCell: 'N17_Port_Cell'>,
 <AVAIL_SPECTRUM.SRO_FW_Layer1: 'SRO_FW_Layer1'>,
 <AVAIL_SPECTRUM.SRO_FW_SB: 'SRO_FW_SB'>,
 <AVAIL_SPECTRUM.SRO_NBI_BetweenDucts: 'SRO_NBI_Between_Ducts'>,
 <AVAIL_SPECTRUM.SRO_NBI_Room: 'SRO_NBI_Room'>,
 <AVAIL_SPECTRUM.SRO_Port_Interspace: 'SRO_Port_Interspace'>,
 <AVAIL_SPECTRUM.SRO_Runaway_Electrons: 'SRO_runaway_electrons'>]
from f4enix.output.decay_pathways import AVAIL_IRR_SCENARIO
list(AVAIL_IRR_SCENARIO) # list of available irradiation scenarios
[<AVAIL_IRR_SCENARIO.DT1: 'DT1'>,
 <AVAIL_IRR_SCENARIO.DT2: 'DT2'>,
 <AVAIL_IRR_SCENARIO.SRO: 'SRO'>,
 <AVAIL_IRR_SCENARIO.SA2: 'SA2'>]

Filtering decay pathways#

The data regarding all decay pathways is stored in the PathwayLibrary object. The raw data is contained in the library attribute (a pandas dataframe) that can be custom filtered by the user.

from f4enix.output.decay_pathways import PathwayLibrary

plib = PathwayLibrary()
plib.library.sample(n=5)
isotope % dose pathway % dose
Dose threshold Scenario Spectrum element isotope pathway Material cooling time
99 DT2 500MW_First_Wall Co 58 Co59 -(n,2n)-> Co58 Beryllium 11.6 d 19.731846 0.808611
DT1 500MW_First_Wall Co 58 Ni58 -(n,p)-> Co58m -(IT)-> Co58 SS660 24 h 28.067951 12.190473
DT2 500MW_Port_Interspace Co 60 Ni60 -(n,p)-> Co60 SS316L(N)-IG 30 d 51.905347 0.262641
SA2 N17_Port_Cell Tb 160 Tb159 -(n,g)-> Tb160 Concrete 180 d 3.831154 3.811998
DT1 N17_Port_Cell Co 60 Co59 -(n,g)-> Co60m -(IT)-> Co60 W with impurities 30 d 18.582907 11.583284

Some useful methods to filter the global dataframes are shipped directly in F4Enix. The first one is a simple filter of the dataframe. Irradiation scenarios and spectra are defined as Enum.

from f4enix.core.material_library import CONCRETE, SS316LNIG


# get a subset of the global dataframe. If no subsets are
# specified in the arguments, all available ones are returned.
df = plib.filter_pathways(
    materials=[CONCRETE, SS316LNIG],
    cooling_times=['24 h', '11.6 d'],
    irradiation_scenario=[AVAIL_IRR_SCENARIO.DT2],
    spectrum=[AVAIL_SPECTRUM.FirstWall500MW],
    dose=95)
df.sample(n=5)
# df.to_csv('pathways.csv')  # to save it to an excel file
isotope % dose pathway % dose
Dose threshold Scenario Spectrum element isotope pathway Material cooling time
95 DT2 500MW_First_Wall Mn 54 Fe54 -(n,np)-> Mn53 -(n,g)-> Mn54 Concrete 11.6 d 19.441095 0.136671
Cr 51 Cr50 -(n,g)-> Cr51 SS316L(N)-IG 24 h 1.897676 0.266149
Na 24 Mg24 -(n,p)-> Na24 Concrete 24 h 90.735662 27.580012
Sr 85 Sr84 -(n,g)-> Sr85m -(IT)-> Sr85 Concrete 11.6 d 1.665577 0.143206
Ta 182 Ta181 -(n,g)-> Ta182 Concrete 11.6 d 2.538098 1.596921

The second one allows to get a unique list of decay pathways that are important for the requested scenario. Here the value of the rows will correspond to the combination of material, irradiation scenario and spectrum for which the highest pathway dose contribution was encountered.

df = plib.get_pathways(
    materials=[CONCRETE, SS316LNIG],
    cooling_times=['24 h', '11.6 d'],
    spectrum=[AVAIL_SPECTRUM.FirstWall500MW],
    irradiation_scenario=[AVAIL_IRR_SCENARIO.DT2],
    dose=95)
df.head()
cooling time isotope % dose pathway % dose
element isotope pathway
Na 22 Na23 -(n,2n)-> Na22 11.6 d 13.581475 13.576042
24 Al27 -(n,a)-> Na24 24 h 90.735662 58.904684
Mg24 -(n,p)-> Na24 24 h 90.735662 27.580012
Na23 -(n,g)-> Na24 24 h 90.735662 4.069494
Ar 37 Ca40 -(n,a)-> Ar37 11.6 d 0.810715 0.808599