radioactivedecay هي حزمة Python لحسابات التحلل الإشعاعي. وهو يدعم سلاسل الانحلال من النويدات المشعة ، والحالات القابلة للانتشار والتحلل المتفرعة. بشكل افتراضي ، يستخدم بيانات التحلل من منشور ICRP 107 ، والذي يحتوي على 1252 النويدات المشعة من 97 عنصرًا ، وبيانات الكتلة الذرية من مركز بيانات الكتلة الذرية.
يحل الرمز المعادلات التفاضلية للتسوس المشع تحليليًا باستخدام إجراءات الجبر الخطي النابض والسكيبي. هناك أيضًا وضع حساب عالي للدقة عالياً يستخدم إجراءات sympy. وهذا يعطي نتائج أكثر دقة لسلاسل الانحلال التي تحتوي على النويدات المشعة مع أوامر من اختلافات الحجم بين نصف المضيق.
هذا برنامج مفتوح المصدر مجاني للاستخدام. تم إنشاؤه للمهندسين والفنيين والباحثين الذين يعملون مع النشاط الإشعاعي ، والاستخدام التعليمي.
يتطلب radioactivedecay Python 3.8+. تثبيت radioactivedecay من فهرس حزمة Python باستخدام pip :
$ pip install radioactivedecayأو من كوندا فورج:
$ 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} تم تحلل Inventory من 2.0 BQ من MO-99 لمدة 20 ساعة ، مما ينتج عنه ذرية مشعة TC-99M و TC-99 ، و Nuclide RU-99 المستقرة.
لقد قمنا بتزويد 'h' كحجة decay() لتحديد الفترة الزمنية للتسوس التي تحتوي على وحدات من الساعات. تتضمن وحدات الوقت المدعومة 'μs' و 'ms' و 's' 's' 'm' و 'h' و 'd' و 'y' وما إلى decay() .
استخدم cumulative_decays() لحساب العدد الإجمالي لذرات كل النويدات المشعة التي تتحلل خلال الفترة الزمنية للتحلل:
>>> Mo99_t0.cumulative_decays( 20.0 , ' h ' )
{'Mo-99': 129870.3165339939, 'Tc-99m': 71074.31925850797,
'Tc-99': 0.0002724635511147602} يمكن تحديد النويدات المشعة بأربع طرق مكافئة في radioactivedecay : ثلاثة اختلافات من سلاسل النيوكريد أو عن طريق المعرفات الكنسية. على سبيل المثال ، ما يلي عبارة عن طرق مكافئة لتحديد 222 RN و 192N IR:
'Rn-222' ، 'Rn222' ، '222Rn' ، 862220000 ،'Ir-192n' ، 'Ir192n' ، '192nIr' ، 771920002 . يمكن إنشاء المخزونات عن طريق توفير النشاط ( 'Bq' ، 'Ci' ، 'dpm' ...) ، الكتلة ( 'g' ، 'kg' ...) ، الخلد ( 'mol' ، 'kmol' ...) ، أو أعداد من النواة ( 'num' ) إلى منشئ Inventory() . استخدم activities() ، masses() ، moles() ، numbers() mass_fractions() mole_fractions() activity_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 ' )يوضح الرسم البياني تحلل MO-99 على مدار 20 يومًا ، مما يؤدي إلى نمو 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). انظر النظرية Docpage لمزيد من التفاصيل.
يستخدم إجراءات Numpy و Scipy لحسابات التحلل القياسية (عمليات الفاصلة المزدوجة) ، و Sympy لحسابات الدقة العددية التعسفية.
بشكل افتراضي ، يستخدم radioactivedecay بيانات الانحلال من منشور ICRP 107 (2008) وبيانات الكتلة الذرية من مركز بيانات الكتلة الذرية (AMDC - AME2020 و NUBASE2020).
يحتوي Repo على مجموعات البيانات على دفاتر Jupyter لإنشاء مجموعات بيانات الانحلال التي يمكن استخدامها بواسطة radioactivedecay ، على سبيل المثال ICRP 107.
تحتوي المقارنات على بعض الفحوصات من radioactivedecay ضد Pyne و Boxological Toolbox.
من تشغيل الدليل الأساسي:
$ python -m unittest discover radioactivedecay هو برنامج مفتوح المصدر تم إصداره بموجب ترخيص معهد ماساتشوستس للتكنولوجيا. انظر ملف الترخيص للحصول على التفاصيل.
بيانات الانحلال الافتراضية المستخدمة من قبل radioactivedecay (ICRP-107) هي حقوق الطبع والنشر 2008 A. Endo و KF Eckerman وتوزيعها بموجب ترخيص منفصل. بيانات الكتلة الذرية الافتراضية هي من AMDC (ترخيص).
إذا وجدت هذه الحزمة مفيدة لبحثك ، فيرجى التفكير في ذكر الورقة على radioactivedecay المنشورة في مجلة البرامج المفتوحة المصدر:
Alex Malins & Thom Lemoine ، RadioCtiveDecay: حزمة Python لحسابات التحلل المشع . Journal of Open Source Software ، 7 (71) ، 3318 (2022). doi: 10.21105/joss.03318.
نرحب بالمساهمين لإصلاح الأخطاء ، وإضافة ميزات جديدة أو تقديم طلبات الميزات. يرجى فتح مشكلة أو سحب طلب أو مناقشات جديدة في مستودع GitHub.
يرجى قراءة إرشادات المساهمة.