Skip to main content Skills Marketplace Discover and explore AI skills built by the community.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Copy promptShow prompt details A direct command skips the review prompt. Inspect the source before running it.
npx skills add https://github.com/ffsshhttiikk/opencode-agents-skills --skill nuclear-physicsThe command stays on one line. Scroll horizontally to inspect it before copying.
Prefer a local copy? Download the files currently available to SkillsMP.
Download Zip Downloading... More from this repository
Related occupations SOC
Based on SOC occupation classification
name nuclear-physics description Nuclear physics fundamentals including radioactive decay, nuclear structure, fission, fusion, particle interactions, and nuclear models for energy and research applications. category physics tags ["physics","nuclear-physics","radioactive-decay","fission","fusion","nuclear-structure","particle-physics"] difficulty advanced author neuralblitz
Nuclear Physics
What I do
I provide comprehensive expertise in nuclear physics, the branch of physics studying atomic nuclei and their constituents. I enable you to analyze radioactive decay processes, understand nuclear structure and binding energy, calculate fission and fusion reactions, apply nuclear models (shell model, liquid drop), compute reaction cross-sections, and model nuclear reactors and weapons. My knowledge spans from foundational nuclear properties to applications in energy production, medicine, and astrophysics.
When to use me
Use nuclear physics when you need to: calculate half-lives and decay rates, design or analyze nuclear reactors, compute fusion reaction rates in stars, model radioactive decay chains, calculate shielding and dosimetry, analyze nuclear data and cross-sections, understand stellar nucleosynthesis, or develop nuclear medicine applications.
Core Concepts
Nuclear Structure : Protons and neutrons (nucleons) bound by strong nuclear force with meson exchange.
Binding Energy and Mass Defect : Mass difference between nucleus and constituent nucleons (E=mc²).
Radioactive Decay : Alpha (helium emission), beta (electron/positron emission), gamma (photon emission) processes.
Decay Law : N(t) = N₀ exp(-λt) with half-life t½ = ln(2)/λ.
Nuclear Fission : Splitting of heavy nuclei releasing energy (U-235, Pu-239 fission).
Nuclear Fusion : Combining light nuclei to release energy (D-T, p-p chain in stars).
Shell Model and Magic Numbers : Single-particle orbits explaining nuclear structure and stability.
Liquid Drop Model : Semi-empirical mass formula describing binding energy trends.
Q-Value : Energy released/absorbed in nuclear reactions (mass difference × c²).
Cross-Section and Reaction Rate : Probability of interaction and resulting reaction rate (R = nσv).
Code Examples
Nuclear Properties
import numpy as np
c = 2.998e8
u = 1.66054e-27
e = 1.602e-19
MeV_to_J = 1.602e-13
def atomic_mass_excess (A, Z, mass_excess_MeV ):
"""Convert mass excess to atomic mass in u."""
return A + mass_excess_MeV / 931.494
def binding_energy (A, Z, mass_nucleus ):
"""Calculate binding energy from nuclear mass."""
mp = 1.007276
mn = 1.008665
mass_defect = Z * mp + (A - Z) * mn - mass_nucleus
return mass_defect * 931.494
def semi_empirical_mass (A, Z ):
"""
Semi-empirical mass formula (Weizsäcker formula).
B(A,Z) = a_v A - a_s A^(2/3) - a_c Z(Z-1)/A^(1/3) - a_a (A-2Z)²/A ± δ
"""
a_v = 15.75
a_s = 17.8
a_c = 0.711
a_a = 23.7
a_p = 11.18
if A % 2 == 0 and Z % 2 == 0 :
delta = a_p / np.sqrt(A)
elif A % == Z % == :
delta = -a_p / np.sqrt(A)
:
delta =
B = (a_v * A
- a_s * A**( / )
- a_c * Z * (Z - ) / A**( / )
- a_a * (A - *Z)** / A
+ delta)
B
( ):
B / A
( )
( )
B_Ca40 = semi_empirical_mass( , )
( )
( )
( )
B_Fe56 = semi_empirical_mass( , )
( )
( )
( )
B_U238 = semi_empirical_mass( , )
( )
( )
magic_numbers = [ , , , , , , ]
( )
( )
( )
( )
( )
( )
Radioactive Decay
import numpy as np
def decay_constant (half_life ):
"""λ = ln(2) / t_1/2"""
return np.log(2 ) / half_life
def activity (N, half_life ):
"""A = λN = (ln2/t_1/2) × N"""
return decay_constant(half_life) * N
def radioactive_decay (N0, half_life, t ):
"""N(t) = N₀ × 2^(-t/t_1/2) = N₀ × exp(-λt)"""
return N0 * np.exp(-decay_constant(half_life) * t)
def daughter_growth (N0, half_life_parent, half_life_daughter, t ):
"""Bateman equations for decay chain."""
lambda_p = decay_constant(half_life_parent)
lambda_d = decay_constant(half_life_daughter)
N_parent = N0 * np.exp(-lambda_p * t)
N_daughter = (lambda_p / (lambda_d - lambda_p)) * N0 * (
np.exp(-lambda_p * t) - np.exp(-lambda_d * t)
)
return N_parent, N_daughter
def secular_equilibrium (t, lambda_p, lambda_d ):
"""When t >> t_parent, N_daughter/N_parent ≈ λ_p/λ_d."""
return lambda_p / lambda_d
half_lives = {
'U-238' : 4.468e9 ,
'U-235' : 7.038e8 ,
'Ra-226' : 1600 ,
'C-14' : 5730 ,
'Co-60' : ,
: ,
: ,
: ,
}
( )
isotope, t_half (half_lives.items())[: ]:
lambda_decay = decay_constant(t_half)
( )
( )
( )
( ):
lambda_c14 = decay_constant(t_half * * * )
np.log(C14_ratio) / (-lambda_c14) / ( * * )
initial_ratio =
ratio [ , , , ]:
age = carbon14_age(ratio / initial_ratio)
( )
( )
U238_hl = * * *
Pb206_hl = np.inf
t_equilibrium = * * *
N_U238 =
ratio_Pb_U = np.exp(-decay_constant(U238_hl) * t_equilibrium)
( )
( )
( )
Nuclear Reactions and Q-Values
import numpy as np
def Q_value (m_initial, m_final, c2=931.494 ):
"""
Calculate Q-value of nuclear reaction.
Q = (m_initial - m_final) × c²
Positive Q: exothermic (releases energy)
Negative Q: endothermic (absorbs energy)
"""
return (m_initial - m_final) * c2
def threshold_energy (Q, A_target, A_projectile, c2=931.494 ):
"""
Minimum kinetic energy for endothermic reaction.
E_thresh = |Q| × (A_target + A_projectile) / A_target
"""
return abs (Q) * (A_target + A_projectile) / A_target
def reaction_rate (n1, n2, sigma, v ):
"""R = n₁n₂σv for two-body reactions."""
return n1 * n2 * sigma * v
def cross_section_beer_lambert (I0, I, x ):
"""σ = (1/nx) × ln(I₀/I) from Beer-Lambert law."""
return np.log(I0 / I) / x
masses_u = {
'n' : 1.008665 ,
'p' : 1.007825 ,
'D' : 2.014102 ,
'T' : 3.016049 ,
'He3' : 3.016029 ,
'He4' : 4.002602 ,
'U235' : 235.043930 ,
'U236' : 236.045568 ,
'Ba141' : ,
: ,
: + ,
}
( )
( )
m_init = masses_u[ ] + masses_u[ ]
m_final = masses_u[ ] + masses_u[ ]
Q_DT = Q_value(m_init - m_final)
( )
( )
m_init = * masses_u[ ]
m_final = masses_u[ ] + masses_u[ ]
Q_DDn = Q_value(m_init - m_final)
( )
( )
m_init = * masses_u[ ]
m_final = masses_u[ ] + masses_u[ ]
Q_DDp = Q_value(m_init - m_final)
( )
( )
m_init = masses_u[ ] + masses_u[ ]
m_final = masses_u[ ]
Q_fission = Q_value(m_init - m_final)
( )
( )
Q_fission_products = Q_value(masses_u[ ] - (masses_u[ ] + masses_u[ ] + *masses_u[ ]))
( )
( )
A_target, A_proj = ,
E_thresh = threshold_energy(- MeV), A_target, A_proj)
( )
( )
( )
Nuclear Reactors
import numpy as np
def neutron_diffusion (D, Σa, phi ):
"""Diffusion equation: D∇²φ - Σaφ = -S"""
L = np.sqrt(D / Σa)
return phi
def four_factor_formula (k_inf, epsilon, p, f ):
"""
Four-factor formula for infinite multiplication.
k∞ = η × f × ε × p
η = neutrons per absorption in fuel
f = thermal utilization factor
ε = fast fission factor
p = resonance escape probability
"""
return eta * f * epsilon * p
def effective_multiplication (k_inf, k_eff ):
"""k_eff = k∞ × P_non_leakage"""
return k_inf * (1 - k_non_leakage)
def reactor_period (T, rho ):
"""Reactor period from reactivity."""
return T / (1 - 1 /k_eff)
k_inf = 1.32
L = 0.10
k_eff = k_inf * L
print ("Nuclear reactor criticality:" )
print (f" k∞ = {k_inf:.2 f} " )
print (f" k_eff = {k_eff:.2 f} " )
print ( )
k_eff > :
( )
k_eff < :
( )
:
( )
neutron_generations = []
N_thermal =
gen ( ):
gen == :
N_thermal =
:
N_thermal *= k_eff
neutron_generations.append(N_thermal)
( )
i, N (neutron_generations[: ]):
( )
( ):
P_thermal / (E_fission * )
( ):
P / volume
P_gw =
fissions_per_sec = thermal_power(P_gw)
( )
( )
( )
( ):
N_235 * / (N_235 * + N_238 * ) *
N_235_perc [ , , , ]:
N_238_perc = - N_235_perc
wt_235 = enrichment(N_235_perc, N_238_perc)
( )
Stellar Nucleosynthesis
import numpy as np
def pp_chain_rate (T ):
"""
Proton-proton chain reaction rate.
Approximate: ε ∝ T⁴ for pp-I
"""
T9 = T / 1e9
if T9 < 0.01 :
return 1e-26 * T9**4
return 1e-6 * np.exp(-33.8 / T9**0.5 )
def CNO_cycle_rate (T ):
"""CNO cycle rate dominates at T > 1.5e7 K."""
T9 = T / 1e9
return 1e-25 * np.exp(-152 / T9**0.5 )
def triple_alpha_rate (T ):
"""
Triple-alpha reaction (3⁴He → ¹²C).
Rate ∝ T⁻³ for helium burning.
"""
T9 = T / 1e9
return 1e-8 * np.exp(-4.4 / T9**3 )
temps = [1.5e7 , 2e7 , 3e7 ]
print ("Stellar nucleosynthesis rates:" )
for T in temps:
T9 = T / 1e9
pp_rate = pp_chain_rate(T)
cno_rate = CNO_cycle_rate(T)
triple_alpha = triple_alpha_rate(T)
print (f"\n T = {T: e} K ( ×10⁹ K):" )
( )
( )
( )
( ):
T8 = T /
* T8**
( ):
T8 = T /
* T8**
( )
T [ , ]:
eps_pp = energy_generation_pp(T)
eps_cno = energy_generation_CNO(T)
( )
( )
( )
( ):
* M_solar**(- ) / L_solar
M [ , , , , ]:
L = M**
t = main_sequence_lifetime(M, L)
( )
():
( ):
k =
G =
m_H =
T_K = T
rho_kg = rho
( * k * T_K / (G * m_H))**( / ) * ( / ( * np.pi * rho_kg))**( / )
( )
T_Jeans =
rho_Jeans =
M_J = jeans_mass(T_Jeans, rho_Jeans)
( )
( )
Best Practices
Use consistent mass units (u or MeV/c²) when calculating Q-values and binding energies.
For half-life calculations, be careful with time unit conversions (seconds, years, etc.).
In reactor physics, distinguish between infinite multiplication factor (k∞) and effective multiplication factor (k_eff).
Account for both prompt and delayed neutrons in reactor kinetics; delayed neutrons make control possible.
For shielding calculations, consider gamma ray buildup factors and neutron moderation.
In decay chain calculations, use the Bateman equations for secular and transient equilibrium.
For stellar nucleosynthesis, remember that reaction rates depend strongly on temperature (Arrhenius behavior).
When calculating cross-sections, distinguish between microscopic (σ) and macroscopic (Σ) cross-sections.
Use Monte Carlo methods (MCNP, Geant4) for complex radiation transport problems.
Always consider radiation safety (ALARA principle) when working with radioactive materials.
2
1
and
2
1
else
0
2
3
1
1
3
2
2
return
def
binding_energy_per_nucleon
B, A
"""Calculate binding energy per nucleon."""
return
print
"Nuclear binding energy:"
print
f" Semi-empirical for ⁴⁰Ca (Z=20, A=40):"
40
20
print
f" Total B = {B_Ca40:.1 f} MeV"
print
f" B/A = {B_Ca40/40 :.3 f} MeV/nucleon"
print
f"\n Semi-empirical for ⁵⁶Fe (Z=26, A=56):"
56
26
print
f" Total B = {B_Fe56:.1 f} MeV"
print
f" B/A = {B_Fe56/56 :.3 f} MeV/nucleon"
print
f"\n Semi-empirical for ²³⁸U (Z=92, A=238):"
238
92
print
f" Total B = {B_U238:.1 f} MeV"
print
f" B/A = {B_U238/238 :.3 f} MeV/nucleon"
2
8
20
28
50
82
126
print
f"\nMagic numbers (shell closures): {magic_numbers} "
print
" Nuclei with magic numbers have:"
print
" - Extra binding energy"
print
" - Larger neutron separation energies"
print
" - Spherical ground states"
print
" - Higher first excited states"
5.27
'I-131'
8.02
'Cs-137'
30.17
'Rn-222'
3.82
print
"Radioactive decay:"
for
in
list
5
print
f" {isotope} : t_1/2 = {t_half:.2 e} "
print
f" λ = {lambda_decay:.2 e} s⁻¹"
print
f" 1/λ = {1 /lambda_decay:.2 e} s = {1 /lambda_decay/3600 :.2 e} hours"
def
carbon14_age
C14_ratio, t_half=5730
"""
Calculate age from C-14 ratio.
Assumes initial ratio was 1.25e-12 (living organism)
"""
365.25
24
3600
return
365.25
24
3600
1.25e-12
for
in
1.25e-12
0.625e-12
0.156e-12
0.039e-12
print
f"\n C-14 ratio = {ratio:.3 e} : age = {age:.0 f} years"
print
f" ~ {age/1000 :.1 f} thousand years"
4.468e9
365.25
24
3600
1e9
365.25
24
3600
1e6
print
f"\nU-238 → Pb-206 decay chain:"
print
f" After 1 billion years: Pb-206/U-238 ≈ {ratio_Pb_U:.2 e} "
print
f" Secular equilibrium reached when t >> 4.5 billion years"
140.914411
'Kr92'
91.926156
'fission_fragments'
140.9
91.9
print
"Nuclear reaction Q-values:"
print
"\n1. D + T → He-4 + n:"
'D'
'T'
'He4'
'n'
print
f" Q = {Q_DT:.1 f} MeV (releases energy!)"
print
"\n2. D + D → He-3 + n:"
2
'D'
'He3'
'n'
print
f" Q = {Q_DDn:.1 f} MeV"
print
"\n3. D + D → T + p:"
2
'D'
'T'
'p'
print
f" Q = {Q_DDp:.1 f} MeV"
print
"\n4. U-235 + n → U-236*:"
'U235'
'n'
'U236'
print
f" Q = {Q_fission:.1 f} MeV"
print
"\n5. U-236 fission products (typical):"
'U236'
'Ba141'
'Kr92'
3
'n'
print
f" Ba-141 + Kr-92 + 3n: Q = {Q_fission_products:.1 f} MeV"
print
f" Total fission Q ≈ 200 MeV"
12
1
5
print
f"\nThreshold energy (¹²C + n → ¹³C):"
print
f" Q = -1.95 MeV (endothermic)"
print
f" E_thresh = {E_thresh:.2 f} MeV"
f" Reactivity ρ = (k-1)/k = {(k_eff-1 )/k_eff*100 :.2 f} %"
if
1
print
f" Supercritical - power increasing!"
elif
1
print
f" Subcritical - power decreasing!"
else
print
f" Critical - steady power"
1
for
in
range
10
if
0
1
else
print
f"\nNeutron generations (k={k_eff:.2 f} ):"
for
in
enumerate
5
print
f" Generation {i} : {N:.2 f} neutrons"
def
thermal_power
P_thermal, E_fission=200
"""Calculate fission rate from thermal power."""
return
1.602e-13
def
power_density
P, volume
"""Power density in W/m³."""
return
1e9
print
f"\n1 GW thermal reactor:"
print
f" Fission rate: {fissions_per_sec:.2 e} fissions/s"
print
f" U-235 consumption: {fissions_per_sec * 235 / 6.022e23 * 1e6 :.1 f} kg/day"
def
enrichment
N_235, N_238
"""Calculate weight percent enrichment."""
return
235
235
238
100
for
in
3
5
20
90
100
print
f"\n {N_235_perc} % U-235 atoms = {wt_235:.2 f} % by weight"
.1
{T9:.2 f}
print
f" pp-chain: {pp_rate:.2 e} "
print
f" CNO: {cno_rate:.2 e} "
print
f" Dominant: {'CNO' if cno_rate > pp_rate else 'pp-chain' } "
def
energy_generation_pp
T
"""ε_pp ≈ 1.08×10⁻⁶ T⁶ in L☉/M☉ for pp-I."""
1e8
return
1.08e-6
6
def
energy_generation_CNO
T
"""ε_CNO ≈ 1.27×10⁻²⁷ T¹⁷ in L☉/M☉."""
1e8
return
1.27e-27
17
print
f"\nEnergy generation (erg/s/g):"
for
in
1.5e7
2e7
print
f" T = {T:.1 e} K:"
print
f" pp-chain: {eps_pp:.2 e} "
print
f" CNO: {eps_cno:.2 e} "
def
main_sequence_lifetime
M_solar, L_solar=1
"""t_MS ≈ 10¹⁰ × (M/M☉)^(-2.5) × (L☉/L) years."""
return
10e9
2.5
for
in
0.5
1
2
5
10
3.5
print
f"\n M = {M} M☉: L = {L:.1 f} L☉, t_MS = {t/1e9 :.1 f} billion years"
def
hydrostatic_equilibrium
"""dP/dr = -G M(r) ρ(r) / r²"""
pass
def
jeans_mass
T, rho
"""M_J ≈ (5kT/Gm_H)^(3/2) × (3/4πρ)^(1/2)"""
1.38e-23
6.674e-11
1.67e-27
return
5
3
2
3
4
1
2
print
f"\nJeans mass (cloud collapse):"
100
1e-21
print
f" T = {T_Jeans} K, ρ = {rho_Jeans:.1 e} kg/m³"
print
f" M_J = {M_J / 2e30 :.2 f} M☉"