radioactivedecay是用於放射性衰減計算的Python軟件包。它支持放射性核素,亞穩態狀態和分支衰變的衰減鏈。默認情況下,它使用來自ICRP出版物107的衰減數據,其中包含1252個放射性核素的97個元素,以及來自原子質量數據中心的原子質量數據。
該代碼使用Numpy和Scipy線性代數例程在分析上求解放射性衰減方程。還採用Sympy例程的高數值精度計算模式。這為含有放射性核素的衰減鏈具有更準確的結果,而半衰期之間的數量級差異。
這是免費使用的開源軟件。它是專為從放射性和教育使用的工程師,技術人員和研究人員而創建的。
radioactivedecay需要Python 3.8+。使用pip從Python軟件包索引中安裝radioactivedecay :
$ pip install radioactivedecay或來自Conda-Forge:
$ conda install -c conda-forge radioactivedecay如果命令尚未在環境中尚未存在,則任何一個命令都將嘗試安裝依賴項(matplotlib,networkx,numpy,pandas,scipy,scipy,setuptools&sympy)。
創建放射性核素的Inventory ,並如下:
>>> import radioactivedecay as rd
>>> Mo99_t0 = rd.Inventory({ ' Mo-99 ' : 2.0 }, ' Bq ' )
>>> Mo99_t1 = Mo99_t0.decay( 20.0 , ' h ' )
>>> Mo99_t1.activities( ' Bq ' )
{'Mo-99': 1.6207863893776937, 'Ru-99': 0.0,
'Tc-99': 9.05304236308454e-09, 'Tc-99m': 1.3719829376710406} 2.0 BQ的MO-99 Inventory腐爛了20小時,產生了放射性後代TC-99M和TC-99,以及穩定的核素RU-99。
我們提供了'h'作為decay()的論點,以指定衰減時間段的單位數小時。支持的時間單元包括'μs' , 'ms' , 's' , 'm' , 'h' , 'd' , 'y'等。請注意seconds( 's' )是默認值,如果不提供單位decay() 。
使用cumulative_decays()計算衰減時間段衰減的每個放射性核素的原子總數:
>>> Mo99_t0.cumulative_decays( 20.0 , ' h ' )
{'Mo-99': 129870.3165339939, 'Tc-99m': 71074.31925850797,
'Tc-99': 0.0002724635511147602}放射性核素可以在radioactivedecay中以四種等效方式指定:核素字符串的三種變體或規範ID。例如,以下是指定222 RN和192n IR的等效方法:
'Rn-222' , 'Rn222' , '222Rn' , 862220000 ,'Ir-192n' , 'Ir192n' , '192nIr' , 771920002 。庫存可以通過提供活動( 'Bq' , 'Ci' , 'dpm' ...),質量( 'g' , 'kg' ...),mole( 'mol' , 'kmol' ...)單位或數量的nuclei( 'num' )到Inventory()構建體。使用Methods activities() , masses() , moles() , numbers() , activity_fractions() , mass_fractions()和mole_fractions()以不同格式獲取庫存內容:
>>> H3_t0 = rd.Inventory({ ' H-3 ' : 3.0 }, ' g ' )
>>> H3_t1 = H3_t0.decay( 12.32 , ' y ' )
>>> H3_t1.masses( ' g ' )
{'H-3': 1.5, 'He-3': 1.4999900734297729}
>>> H3_t1.mass_fractions()
{'H-3': 0.5000016544338455, 'He-3': 0.4999983455661545}
>>> C14_t0 = rd.Inventory({ ' C-14 ' : 3.2E24 }, ' num ' )
>>> C14_t1 = C14_t0.decay( 3000 , ' y ' )
>>> C14_t1.moles( ' mol ' )
{'C-14': 3.6894551567795797, 'N-14': 1.6242698581767292}
>>> C14_t1.mole_fractions()
{'C-14': 0.6943255713073281, 'N-14': 0.3056744286926719}使用plot()方法圖表庫存的衰減,隨著時間的流逝:
>>> Mo99_t0.plot( 20 , ' d ' , yunits = ' Bq ' )該圖顯示了20天內MO-99的衰變,導致TC-99M的向內生長和痕量的TC-99。 RU-99的活性嚴格為零,因為它是衰減鏈末端的穩定核素。使用matplotlib繪製圖形。
Nuclide類可用於獲取單個放射性核素的衰減信息,例如RN-222:
>>> nuc = rd.Nuclide( ' Rn-222 ' )
>>> nuc.half_life( ' s ' )
330350.4
>>> nuc.half_life( ' readable ' )
'3.8235 d'
>>> nuc.progeny()
['Po-218']
>>> nuc.branching_fractions()
[1.0]
>>> nuc.decay_modes()
['α']
>>> nuc.Z # proton number
86
>>> nuc.A # nucleon number
222
>>> nuc.atomic_mass # atomic mass in g/mol
222.01757601699998有類似的庫存方法來獲取衰減數據:
>>> Mo99_t1.half_lives( ' readable ' )
{'Mo-99': '65.94 h', 'Ru-99': 'stable', 'Tc-99': '0.2111 My', 'Tc-99m': '6.015 h'}
>>> Mo99_t1.progeny()
{'Mo-99': ['Tc-99m', 'Tc-99'], 'Ru-99': [], 'Tc-99': ['Ru-99'], 'Tc-99m': ['Tc-99', 'Ru-99']}
>>> Mo99_t1.branching_fractions()
{'Mo-99': [0.8773, 0.1227], 'Ru-99': [], 'Tc-99': [1.0], 'Tc-99m': [0.99996, 3.7e-05]}
>>> Mo99_t1.decay_modes()
{'Mo-99': ['β-', 'β-'], 'Ru-99': [], 'Tc-99': ['β-'], 'Tc-99m': ['IT', 'β-']}Nuclide類包括用於繪製衰減鏈圖的plot()方法:
>>> nuc = rd.Nuclide( ' Mo-99 ' )
>>> nuc.plot()這些圖是使用NetworkX和Matplotlib繪製的。
radioactivedecay包括用於高數值精確計算的InventoryHP類。該類可以為包含長和短壽命放射性核素的鏈條提供更可靠的衰減計算結果:
>>> U238_t0 = rd.InventoryHP({ ' U-238 ' : 1.0 })
>>> U238_t1 = U238_t0.decay( 10.0 , ' d ' )
>>> U238_t1.activities()
{'At-218': 1.4511675857141352e-25,
'Bi-210': 1.8093327888942224e-26,
'Bi-214': 7.09819414496093e-22,
'Hg-206': 1.9873081129046843e-33,
'Pa-234': 0.00038581180879502017,
'Pa-234m': 0.24992285949158477,
'Pb-206': 0.0,
'Pb-210': 1.0508864357335218e-25,
'Pb-214': 7.163682655782086e-22,
'Po-210': 1.171277829871092e-28,
'Po-214': 7.096704966148592e-22,
'Po-218': 7.255923469955255e-22,
'Ra-226': 2.6127168262000313e-21,
'Rn-218': 1.4511671865210924e-28,
'Rn-222': 7.266530698712501e-22,
'Th-230': 8.690585458641225e-16,
'Th-234': 0.2499481473619856,
'Tl-206': 2.579902288672889e-32,
'Tl-210': 1.4897029111914831e-25,
'U-234': 1.0119788393651999e-08,
'U-238': 0.9999999999957525}radioactivedecay使用線性代數操作計算放射性衰減方程的分析解決方案。它實現了本文所述的方法:M amaku,pr pascholati&vr vanin,Comp。物理。通訊。 181,21-23(2010)。有關更多詳細信息,請參見理論文檔。
它使用Numpy和Scipy例程進行標準衰減計算(雙精度的浮點操作),並用於任意數值精度計算。
默認情況下, radioactivedecay使用ICRP出版物107(2008)和原子質量數據中心(AMDC -AME2020和Nubase2020評估)的原子質量數據的衰減數據。
數據集回購包含用於創建可以通過radioactivedecay使用的衰減數據集的Jupyter筆記本,例如ICRP 107。
比較回購包含針對Pyne和放射學工具箱的一些radioactivedecay檢查。
從基本目錄運行:
$ python -m unittest discover radioactivedecay是根據MIT許可發布的開源軟件。有關詳細信息,請參見許可證文件。
radioactivedecay (ICRP-107)使用的默認衰減數據是版權2008 A. Endo和KF Eckerman,並在單獨的許可下分發。默認的原子量數據來自AMDC(許可證)。
如果您發現此軟件包對您的研究有用,請考慮引用《放射性訪問雜誌》上發表的radioactivedecay 》論文:
亞歷克斯·馬林斯(Alex Malins)和湯姆·萊梅恩(Thom Lemoine), 《放射性賽車:放射性衰減計算》的Python包裝。開源軟件雜誌, 7 (71),3318(2022)。 doi:10.21105/joss.03318。
歡迎貢獻者修復錯誤,添加新功能或提出功能請求。請在GitHub存儲庫中打開問題,拉請請求或新討論線程。
請閱讀貢獻指南。