This page was generated from the Jupyter notebook
lifetimes.ipynb.
Calculating Lifetimes
[1]:
import matplotlib.pyplot as plt
import numpy as np
from ryd_numerov.rydberg import RydbergState
[2]:
method = "exact"
T_in_K = 300
state = RydbergState("Rb", n=30, l=0, j=0.5, m=0.5)
lifetime_0 = state.get_lifetime(method=method)
lifetime = state.get_lifetime(T_in_K, temperature_unit="K", method=method)
print(f"Lifetime at T=0: {lifetime_0.to('mus'):.2f}")
print(f"Lifetime at T={T_in_K}K: {lifetime.to('mus'):.2f}")
Lifetime at T=0: 25.50 microsecond
Lifetime at T=300K: 15.80 microsecond
[3]:
states_sp, transition_rates_sp = state.get_spontaneous_transition_rates(unit="1/mus", method=method)
print(f"Number of possible spontaneous decay transitions: {len(transition_rates_sp)}")
states_bbr, transition_rates_bbr = state.get_black_body_transition_rates(T_in_K, "kelvin", unit="1/mus", method=method)
print(f"Number of considered BBR transitions: {len(transition_rates_bbr)}")
fig, ax = plt.subplots()
n_list = np.arange(0, np.max([s.n for s in states_bbr]) + 1)
rates_summed = {}
for key, states, rates in [("BBR", states_bbr, transition_rates_bbr), ("SP", states_sp, transition_rates_sp)]:
rates_summed[key] = np.zeros(len(n_list))
for i, s in enumerate(states):
rates_summed[key][s.n] += rates[i]
ax.bar(n_list, rates_summed["SP"], label="Spontaneous Decay", color="blue", alpha=0.8)
ax.bar(n_list, rates_summed["BBR"], label="Black Body Radiation", color="red", alpha=0.8)
ax.legend()
ax.set_xlabel("Principal Quantum Number ($n$)")
ax.set_ylabel(r"Transition Rates (1 / $\mu$s)")
ax.set_title("Spontaneous and BBR Transition Rates vs $n$")
plt.show()
Number of possible spontaneous decay transitions: 125
Number of considered BBR transitions: 280
