有做网站代理运营的吗营销培训讲师
铯原子(Cs)从基态6S1/2到激发态6P3/2再到里德伯态44D5/2的双光子激发过程,
并通过数值计算和图形化展示来研究不同失谐条件下的拉比频率、AC Stark位移差以及散射概率的变化
结果显示,在给定的实验参数下,拉比频率较低,而AC Stark位移显著,尤其是对于里德伯态
from arc import *import matplotlib.pyplot as plt
import numpy as np
from scipy.constants import pi# # 导入ARC-Alkali-Rydberg-Calculator库中的Cs类
# from arc import-Cs# # 创建Cs对象
# cs = Cs()#铯原子(Cs)从基态6S1/2到激发态6P3/2再到里德伯态44D5/2的双光子激发过程,
# 并通过数值计算和图形化展示来研究不同失谐条件下的拉比频率、AC Stark位移差以及散射概率的变化
#结果显示,在给定的实验参数下,拉比频率较低,而AC Stark位移显著,尤其是对于里德伯态
cs = Cesium()# 探测光(probe)和耦合光(coupling)参数
Pp = 500e-9 # 探测光功率,单位:瓦特 (W)
wp = 3e-6 # 探测光束腰半径,单位:米 (m)
qp = 1 # 探测光偏振方向
Pc = 200e-3 # 耦合光功率,单位:瓦特 (W)
wc = 5e-6 # 耦合光束腰半径,单位:米 (m)
qc = -1 # 耦合光偏振方向# 基态量子数
fg = 4 # 超精细结构量子数 F
mfg = 0 # 总角动量磁量子数 mF# 激发态(6P3/2)量子数
ne = 6 # 主量子数 n
le = 1 # 角量子数 l
je = 1.5 # 总角动量量子数 j# 里德伯态(44D5/2)量子数
nr = 44 # 主量子数 n
lr = 2 # 角量子数 l
jr = 2.5 # 总角动量量子数 j
mjr = -2.5 # 总角动量磁量子数 mjSPD = "SPD" # 用于标识轨道角动量l对应的符号(S, P, D)# 失谐数组
Delta0 = 1.1e9 * 2 * pi # 中心失谐,单位:弧度/秒 (rad/s)
Delta = np.linspace(-2.5, 2.5, 1001) * 1e9 * 2 * pi # 扫描的失谐范围# 双光子里德伯激发计算
OmR, ACg, ACr, Psc = cs.twoPhotonRydbergExcitation(Pp, wp, qp, Pc, wc, qc, Delta0, fg, mfg, ne, le, je, nr, lr, jr, mjr
)print("\nRydberg Excitation 6S1/2 |%d,%d> to %d%c |%d/2,%d/2> via %dP_%d/2"% (fg, mfg, nr, SPD[lr], 2 * jr, 2 * mjr, ne, je * 2)
)
print("\n\tParameters:\tDelta/2pi = %2.2f GHz, Pp = %1.2f uW, wp = %2.1f um, qp=%d, Pc = %1.2f mW, wc = %2.1f um, qc=%d"% (Delta0 / 2.0 / pi * 1e-9,Pp * 1e6,wp * 1e6,qp,Pc * 1e3,wc * 1e6,qc,)
)
print("\n\tResults:\tOmR/2pi = %2.5f MHz\n\t\t\tACg/2pi = %2.5f MHz\n\t\t\tACr/2pi = %2.5f MHz\n\t\t\tDelta_AC/2pi = %2.5f MHz\n\t\t\tPsc = %f"% (OmR / 2.0 / pi * 1e-6,ACg / 2.0 / pi * 1e-6,ACr / 2.0 / pi * 1e-6,(ACg - ACr) / 2.0 / pi * 1e-6,Psc,)
)# 准备输出图形
[f, ax] = plt.subplots(1, 3, figsize=(16, 5))# 设置坐标轴标签和范围
ax[0].set_xlabel(r"$\Delta/2\pi$ (GHz)")
ax[0].set_ylabel(r"$\Omega/2\pi$ (MHz)")
ax[0].set_ylim([-10, 10])
ax[1].set_xlabel(r"$\Delta/2\pi$ (GHz)")
ax[1].set_ylabel(r"$\Delta_\mathrm{AC}/2\pi$ (MHz)")
ax[1].set_ylim([-20, 20])
ax[2].set_xlabel(r"$\Delta/2\pi$ (GHz)")
ax[2].set_ylabel(r"$P_\mathrm{sc}$")
ax[2].set_ylim([0, 0.25])# 添加零线作为参考
ax[0].plot(Delta / (2e9 * pi), 0 * Delta, "k--")
ax[1].plot(Delta / (2e9 * pi), 0 * Delta, "k--")# 循环计算并绘制数据
mj = -jr - 1
for m in range(int(2 * jr + 1)):mj += 1for mfg in [-fg, 0, fg]:[OmR, ACg, ACr, Psc] = cs.twoPhotonRydbergExcitation(Pp, wp, qp, Pc, wc, qc, Delta, fg, mfg, ne, le, je, nr, lr, jr, mj)if np.sum(np.abs(OmR)) > 0.1:ax[0].plot(Delta / (2e9 * pi), OmR / (2e6 * pi))ax[1].plot(Delta / (2e9 * pi), (ACg - ACr) / (2e6 * pi))ax[2].plot(Delta / (2e9 * pi),Psc,label=format("$\\vert%d,%d\\rangle\\rightarrow%d%c\\vert%1.0f/2,%1.0f/2\\rangle$"% (fg, mfg, nr, SPD[lr], 2 * jr, 2 * mj)),)# 添加图例和标题
ax[2].legend(bbox_to_anchor=(1.05, 1), loc='upper left', borderaxespad=0., fontsize='small')
ax[1].set_title("Rydberg excitation 6S_{1/2} -> %dP_{%1.f/2} -> %d%c_{%1.0f/2}"% (ne, 2 * je, nr, SPD[lr], 2 * jr)
)plt.tight_layout() # 自动调整子图参数,使之填充整个图像区域
plt.show()# ax[2].legend(loc=1)
# ax[1].set_title(
# "Rydberg excitation 6S_{1/2} -> %dP_{%1.f/2} -> %d%c_{%1.0f/2}"
# % (ne, 2 * je, nr, SPD[lr], 2 * jr)
# )# plt.show()