This page was generated from the Jupyter notebook dipole_matrix_elements.ipynb.

Calculating dipole matrix elements

[1]:
import numpy as np

from rydstate.rydberg_state import RydbergStateAlkali
[ ]:
state_i = RydbergStateAlkali("Rb", 60, 2, j=3 / 2, m=1 / 2)
state_f = RydbergStateAlkali("Rb", 60, 3, j=5 / 2, m=1 / 2)

kappa = 1
radial = state_i.radial.calc_matrix_element(state_f.radial, k_radial=1)
angular = state_i.angular.calc_matrix_element(state_f.angular, "spherical", kappa=kappa, q=0)
prefactor = np.sqrt(4 * np.pi / (2 * kappa + 1))
print(f"Numerov radial matrix element: {radial}")
print(f"Numerov angular matrix element: {angular}")

dipole = state_i.calc_matrix_element(state_f, "electric_dipole", q=0)
print(f"Numerov dipole matrix element: {dipole}")

assert np.isclose(dipole.magnitude, (prefactor * radial * angular).magnitude), (
    f"{dipole} != {prefactor * radial * angular}"
)
Numerov radial matrix element: -137.76904105892473 bohr
Numerov angular matrix element: 0.23936536824085952
Numerov dipole matrix element: -67.49277058938209 bohr * elementary_charge