Calculation of hyperfine structure and Zeeman shifts
Most functions are compatible with the numpy.ndarray
class and utilize their performance advantage.
In the following example, the non-perturbative (full diagonalization) hyperfine-structure (HFS) and Zeeman-shifts
of the 5d 2D5/2 state in 87Sr+
are calculated for 4000 different magnetic fields.
import numpy as np import qspec as qs I = 4.5 # Total nuclear spin quantum number of 87Sr+ J = 2.5 # Total angular momentum quantum number of the 2D5/2 state g_i = -1.09316 / I # The nuclear g-factor [1] g_j = qs.lande_j(s=0.5, l=2, j=2.5) # The nuclear g-factor, calculated from the nuclear magnetic moment A, B = 2.1743, 49.11 # (MHz), The hyperfine-structure constants [2] b_field = np.linspace(0., 4e-3, 4000) # (T), The magnetic flux density e_eig, m_list, fm_list, mi_mj_list \ = qs.hyper_zeeman_num(I, J, A, B, g_i, g_j, b_field) # The eigenvalues of the HFS + Zeeman-effect Hamiltonian # and the lists of m_F, F and (m_I, m_J) quantum numbers.
Due to the weak hyperfine interaction, the linear Zeeman effect only holds for very small field strengths such that the Paschen-Back effect already dominates at 3-4 mT.
Zooming into the plot reveals the highly nonlinear behavior of the intermediate Zeeman effect and shows the forbidden level-crossing of the mixing F states.