radioactivedecay 는 방사성 붕괴 계산을위한 파이썬 패키지입니다. 방사성 핵종, 주식 상태 및 분지 붕괴의 붕괴 사슬을 지원합니다. 기본적으로 ICRP Publication 107의 붕괴 데이터는 97 개 요소의 1252 방사성 핵종과 원자 질량 데이터 센터의 원자 질량 데이터를 포함합니다.
이 코드는 Numpy 및 Scipy Linear Algebra 루틴을 사용하여 분석적으로 방사성 붕괴 미분 방정식을 해결합니다. 심피 루틴을 사용하는 높은 수치 정밀 계산 모드도 있습니다. 이것은 반감기 사이의 크기 차이가있는 방사성 핵종을 함유 한 붕괴 사슬에 대해보다 정확한 결과를 제공합니다.
이것은 무료 오픈 소스 소프트웨어입니다. 그것은 방사능과 함께 일하는 엔지니어, 기술자 및 연구원을 위해 만들어졌으며 교육용 사용을 위해 만들어졌습니다.
radioactivedecay 에는 Python 3.8+가 필요합니다. pip 사용하여 Python 패키지 인덱스에서 radioactivedecay 설치하십시오.
$ pip install radioactivedecay또는 Conda-Forge에서 :
$ conda install -c conda-forge radioactivedecay어느 중 어느 쪽이든 명령은 환경에 아직 존재하지 않는 경우 종속성 (Matplotlib, Networkx, Numpy, Pandas, 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를 생성 하였다.
우리는 붕괴 기간이 시간 단위를 지정하기 위해 decay() 의 인수로 'h' 공급했습니다. 지원되는 시간 단위에는 'μs' , 'ms' , 's' , 'm' , 'h' , 'd' , ' 's' 'y' 등이 포함됩니다 decay()
cumulative_decays() 사용하여 붕괴 기간 동안 붕괴되는 각 방사성 핵종의 총 원자 수를 계산합니다.
>>> Mo99_t0.cumulative_decays( 20.0 , ' h ' )
{'Mo-99': 129870.3165339939, 'Tc-99m': 71074.31925850797,
'Tc-99': 0.0002724635511147602} 방사성 핵화물은 radioactivedecay 에서 4 가지 동등한 방식으로 지정 될 수있다 : 핵종 줄의 세 가지 변이 또는 표준 ID에 의해. 예를 들어, 다음은 222 RN 및 192N IR을 지정하는 동등한 방법입니다.
'Rn-222' , 'Rn222' , '222Rn' , 862220000 ,'Ir-192n' , 'Ir192n' , '192nIr' , 771920002 . 재고는 활동 ( 'Bq' , 'Ci' , 'dpm' ...), mass ( 'g' , 'kg' ...), Mole ( 'mol' , 'kmol' ...) 단위 또는 핵 ( 'num' )를 공급하여 Inventory() 할 수 있습니다. 메소드 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의 Ingrowth와 TC-99의 미량량이 나타납니다. Ru-99의 활성은 붕괴 체인의 끝에서 안정적인 핵종이기 때문에 엄격하게 0입니다. 그래프는 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 루틴을 사용하고 임의의 수치 정밀 계산을위한 Sympy를 사용합니다.
기본적으로 radioactivedecay ICRP Publication 107 (2008)의 붕괴 데이터와 원자 질량 데이터 센터 (AMDC -AME2020 및 Nubase2020 평가)의 원자 질량 데이터를 사용합니다.
DataSets Repo에는 radioactivedecay (예 : ICRP 107)가 사용할 수있는 부패 데이터 세트를 생성하기위한 Jupyter 노트북이 포함되어 있습니다.
Repo의 비교에는 Pyne 및 방사선 도구 상자에 대한 radioactivedecay 에 대한 일부 점검이 포함되어 있습니다.
기본 디렉토리에서 실행 :
$ python -m unittest discover radioactivedecay 는 MIT 라이센스에 따라 출시 된 오픈 소스 소프트웨어입니다. 자세한 내용은 라이센스 파일을 참조하십시오.
radioactivedecay (ICRP-107)가 사용하는 기본 붕괴 데이터는 Copyright 2008 A. Endo 및 KF Eckerman이며 별도의 라이센스로 배포됩니다. 기본 원자 질량 데이터는 AMDC (라이센스)에서 나온 것입니다.
이 패키지가 귀하의 연구에 유용한 경우, Journal of Open Source Software에 게시 된 radioactivedecay 에 대한 논문을 인용하는 것을 고려하십시오.
Alex Malins & Thom Lemoine, Radioactivedecay : 방사성 붕괴 계산을위한 파이썬 패키지 . 오픈 소스 소프트웨어 저널, 7 (71), 3318 (2022). doi : 10.21105/joss.03318.
기고자는 버그를 고치거나 새로운 기능을 추가하거나 기능 요청을 할 수 있습니다. GitHub 리포지토리에서 문제를 열고 요청을 당기거나 새로운 토론 스레드를 시작하십시오.
기여 가이드 라인을 읽으십시오.