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

Calculating dipole matrix elements

[1]:
import numpy as np

import rydstate
[2]:
state_i = rydstate.RydbergStateSQDTAlkali("Rb", 60, l=2, j=3 / 2, m=1 / 2)
state_f = rydstate.RydbergStateSQDTAlkali("Rb", 60, l=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"Angular matrix element: {angular}")
print(f"Prefactor: {prefactor}")

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.76904105892504 bohr
Angular matrix element: 0.23936536824085952
Prefactor: 2.046653415892977
Numerov dipole matrix element: -67.49277058938226 bohr * elementary_charge