%matplotlib inline
%load_ext autoreload
%autoreload 2
import numpy as np
import matplotlib.pyplot as plt
from scipy.spatial.transform import Rotation as R
import rydiqule as rq
from rydiqule.sensor_utils import get_rho_ij
3-photon Rydberg EIT
We demonstrate three photon coherent excitations using the system studied in Taicharoen et. al. PRA 063427 (2019). This is a rubidium vapor with a \(5S_{1/2}\rightarrow5P_{3/2}\rightarrow5D_{5/2}\rightarrow28F_{7/2}\) excitation pathway, with corresponding optical fields of 780 nm, 776 nm, and 1260 nm. These fields are labelled probe, dressing, and coupling, respectively.
Here we demonstrate using rydiqule to solve this system under three conditions:
Cold atoms
Warm atoms, colinear optical beams
Warm atoms, doppler-free angles
Because there are three optical fields, the basic coherent feature observed, on resonance, is expected to the absorptive (rather than transmissive like EIT). Going to warm atoms, this feature broadens signficantly, and other coherent features can arise at non-zero detunings of the fields. Going to a Doppler-free excitation in warm atoms, we find that a transmissive feature is observed on resonance. This feature is significantly narrower than those observed in the colinear case.
Doppler-free, 3 photon excitation
With all three fields resonant, we expect to see Electromagnetically-Induced-Absorption (EIA) instead of EIT.
detunings = np.linspace(-20,20,41)
probe = {'states':(0,1), 'rabi_frequency':2*np.pi*0.1,'detuning':2*np.pi*0}
dress = {'states':(1,2), 'rabi_frequency':2*np.pi*2}
couple = {'states':(2,3), 'rabi_frequency':2*np.pi*2, 'detuning':2*np.pi*detunings}
basis_size = 4
gam = np.zeros((basis_size,basis_size),dtype=np.float64)
gam[1,0] = 6
gam[2,1] = 0.66
gam[3,2] = 10e-3
gamma_matrix = 2*np.pi*gam
sensor = rq.Sensor(basis_size)
sensor.add_couplings(probe,couple)
sensor.set_gamma_matrix(gamma_matrix)
dress['detuning'] = 2*np.pi*0
sensor.add_couplings(dress)
sols = rq.solve_steady_state(sensor)
fig, ax = plt.subplots()
ax.plot(detunings, get_rho_ij(sols.rho,1,0).imag)
ax.set_xlabel("Coupling Laser Detuning (MHz)")
ax.set_ylabel(r"Im($\rho_{10}$)")
Text(0, 0.5, 'Im($\rho_{10}$)')
Colinear 3-photon Excitation with Doppler Averaging
We can take our three fields and configure them in the (+,-,-) configuration of Taicharoen (2019). We will need to do Doppler averaging along the colinear axis to get the result. The magnitude of a field’s kvector is defined such that it is the magnitude of the Doppler shift associated with the most probable speed of the Maxwell-Boltzmann distribution (\(v_P\equiv\sqrt{2k_B T/m}\), where \(k_B\) is Boltzmann’s constant, \(T\) is the gas temperature, and \(m\) is the atomic mass). It should have units of Mrad/s like all other specifies quantities.
The following reproduces Figure 2b from Taicharoen et. al. PRA 063427 (2019). Note that having all fields resonant results in an EIA feature, but it now much broader than the Doppler-free case above. If the dressing field is detuning, EIT features are observed.
detunings = np.linspace(-200,200,201)
kp = 2*np.pi/780e-3*np.array([1,0,0])
kd = 2*np.pi/776e-3*np.array([-1,0,0])
kc = 2*np.pi/1260e-3*np.array([-1,0,0])
vP = 242.387 # m/s
###
probe = {'states':(0,1), 'rabi_frequency':2*np.pi*10, 'kvec':vP*kp, 'detuning': 0}
dress = {'states':(1,2), 'rabi_frequency':2*np.pi*25, 'kvec':vP*kd}
couple = {'states':(2,3), 'rabi_frequency':2*np.pi*18, 'detuning':2*np.pi*detunings, 'kvec':vP*kc}
###
n = 4
sensor = rq.Sensor(n)
sensor.add_decoherence((1,0), 2*np.pi*6)
sensor.add_decoherence((2,1), 2*np.pi*0.66)
sensor.add_decoherence((3,2), 2*np.pi*10e-3)
sensor.add_couplings(probe,couple)
dress['detuning'] = 2*np.pi*0
sensor.add_couplings(dress)
sols0 = rq.solve_steady_state(sensor,doppler=True)
dress['detuning'] = 2*np.pi*20
sensor.add_couplings(dress)
solsp20 = rq.solve_steady_state(sensor,doppler=True)
dress['detuning'] = -2*np.pi*20
sensor.add_couplings(dress)
solsm20 = rq.solve_steady_state(sensor,doppler=True)
fig, ax = plt.subplots(figsize=(8,6))
ax.plot(detunings, get_rho_ij(sols0.rho,1,0).imag, label="$\\Delta_d= 0$ MHz")
ax.plot(detunings, get_rho_ij(solsp20.rho,1,0).imag, label="$\\Delta_d= +20$ MHz")
ax.plot(detunings, get_rho_ij(solsm20.rho,1,0).imag, label="$\\Delta_d= -20$ MHz")
ax.set_xlabel("Coupling Laser Detuning (MHz)")
ax.set_ylabel(r"Im($\rho_{10}$)")
ax.legend()
<matplotlib.legend.Legend at 0x21861422640>
Doppler-Free Angles
We can take the same co-propagating system, and instead change the angles of the three beams such that \(k_p+k_d+k_c\approx0\).
We now need to do Doppler averaging in two orthogonal dimensions. Rydiqule automatically detects how many non-zero dimensions are present in the field kvectors and averages over the appropriate number of spatial dimensions.
detunings = np.linspace(-20,20,21)
kp = 2*np.pi/780e-3*np.array([1,0,0])
kd = 2*np.pi/776e-3*np.array([-1,0,0])
kc = 2*np.pi/1260e-3*np.array([-1,0,0])
vP = 242.387 # m/s
# rotate to doppler free angles
rd = R.from_euler('z',-35.964,degrees=True)
rc = R.from_euler('z',72.4718,degrees=True)
kdDF = rd.apply(kd)
kcDF = rc.apply(kc)
probe = {'states':(0,1), 'rabi_frequency':2*np.pi*10, 'kvec':vP*kp, 'detuning':0}
dress = {'states':(1,2), 'rabi_frequency':2*np.pi*25, 'kvec':vP*kdDF}
couple = {'states':(2,3), 'rabi_frequency':2*np.pi*18, 'detuning':2*np.pi*detunings, 'kvec':vP*kcDF}
n = 4
sensor = rq.Sensor(n)
sensor.add_decoherence((1,0), 2*np.pi*6)
sensor.add_decoherence((2,1), 2*np.pi*0.66)
sensor.add_decoherence((3,2), 2*np.pi*10e-3)
sensor.add_couplings(probe,couple)
print('Residual fractional kvector sum due to round-off errors')
print((kp+kdDF+kcDF)/np.sqrt(kp.dot(kp)))
Residual fractional kvector sum due to round-off errors
[-1.41309045e-08 -4.99652620e-07 0.00000000e+00]
dress['detuning'] = 2*np.pi*0
sensor.add_couplings(dress)
sols0DF = rq.solve_steady_state(sensor,doppler=True)
fig, ax = plt.subplots()
ax.plot(detunings, get_rho_ij(sols0DF.rho,1,0).imag)
ax.set_xlabel("Coupling Laser Detuning (MHz)")
ax.set_ylabel(r"Im($\rho_{10}$)")
Text(0, 0.5, 'Im($\rho_{10}$)')
We observe a significantly narrower feature than in the collinear case, and it is now EIT instead of EIA.
The authors recognize financial support from the Defense Advanced Research Projects Agency (DARPA). Rydiqule has been approved for unlimited public release by DEVCOM Army Research Laboratory and DARPA. This software is released under the xx licence through the University of Maryland Quantum Technology Center. The views, opinions and/or findings expressed here are those of the authors and should not be interpreted as representing the official views or policies of the Department of Defense or the U.S. Government.