Logo

A physics toolbox for laser spectroscopy.

Static Badge Static Badge Static Badge

Static Badge Static Badge

© 2025 Patrick Müller. All rights reserved.

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 5d2D5/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.

References