计算动态标量、矢量和张量光位移。

lightshifts的Python项目详细描述


Build Status

光位移

计算原子态的动态标量、矢量和张量光位移 在存在超精细耦合的情况下。在

模块lightshifts.lightshift_solver求解标量, 原子偶极跃迁引起的矢量和张量光位移。在

态能、超精细耦合系数与原子跃迁性质 以json文件的形式提供。在

安装

使用安装模块

pip install git+https://github.com/himbeles/lightshifts.git

lightshifts.lightshift_solver的用法

这是用示例状态文件^{}和跃迁文件^{}计算yb-173基态中由波长670nm的100w/cm^2光引起的标量动态光位移的基本例子。在

^{pr2}$

总的动态光位移,包括标量、矢量和张量光位移,也可以得到——这里,对于磁子层$m_F=-5/2$和$\sigma^+$偏振光($q=1$):

# Calculate the total lightshift in Hzls.total_lightshift(lam=670e-9,q=1,mFi=-5/2,laser_intensity=100)# Out[]: -960.038498669505# or a list holding the scalar, vector and tensor light shift separatelyls.lightshifts(lam=670e-9,q=1,mFi=-5/2,laser_intensity=100)# Out[]: (-960.039953992523, 0.000817922762313870, 0.000637400256046666)

有关更高级模块用法的示例,请参见^{}。在

状态和转换文件

原子的态能、超精细耦合系数和跃迁性质 以两个json文件的形式提供:

  • atom.json是一个(至少)所有由原子跃迁连接的状态的数据库,这些状态在第二个文件中给出。它还包括原子的name及其核自旋I。使用electron shell配置字符串(例如6s6p)和状态的LS耦合名称(例如3P1)来指定和排序这些状态。根据LS耦合名称,该工具推断给定状态的相关量子数J。如果状态只知道量子数J,那么可以给它一个任意名称,并指定J作为状态的属性(参见^{})。所有状态的frequency必须相对于基态或one参考状态提供。在

    可选地,你可以给出超精细耦合系数A(hyper_A)和B(hyper_B),这样就可以计算出围绕这些状态的向量和张量位移。在

    例如:

    {"name":"yb173","I":2.5,"states":{"6s6s":{"1S0":{"frequency":0,"hyper_A":0,"hyper_B":0}},"6s6p":{"3P0":{"frequency":518294362279306.1,"_ref_frequency":"NIST","hyper_A":0,"hyper_B":0},"3P1":{"frequency":539386800288320.6,"_ref_frequency":"NIST","hyper_A":-1094328000.0,"hyper_B":-826635000.0,"_ref_hyper":"Pandey et al., PRA 80, 022518 (2009)"}}}}
  • transitions-stateX.json列出了从one开始(初始)状态state_i的所有相关跃迁,我们要计算这些跃迁。它应该包括与要探测的波长范围最相关的跃迁,这意味着过渡到最终状态state_f,波长接近该范围,跃迁越广越重要。作为跃迁强度,指定衰变率Gammastate_f到{}(爱因斯坦A系数)。对于闭合转换,这将是state_f或$\Gamma = 2\pi\gamma$,其中$\gamma$为自然线宽。在

    例如:

    [{"state_i":["6s6s","1S0"],"state_f":["6s6p","1P1"],"Gamma":183016105.4172767,"_ref_Gamma":"Blagoev-1994"},{"state_i":["6s6s","1S0"],"state_f":["6s6p","3P1"],"Gamma":1154601.0853250204,"_ref_Gamma":"Blagoev-1994"}]

估计分支比率

由两个LS耦合态之间的跃迁速率可以计算出约化偶极矩阵元。然而,有时实验上只知道一个态的寿命,而不知道能量较低的态的分支比。 类lightshifts.atom的方法branching_ratio_LS可以通过使用电子构型和角动量选择的宇称选择规则来估计一系列状态之间的偶极矩阵元素的比率。在

首先,导入一个原子状态及其能量的字典(与上面的原子状态文件相同)。在

importlightshifts.atomasatomyb=atom.from_json('atom_yb173.json')

然后,在输入的状态库中,计算初始态_i到所有能量低态的所有分支比:

state_i=('6s5d','3D1')yb.branching_ratios_LS_dict(state_i,verbose=True)# Out[]:#    branching ratio into  ('6s6p', '3P0') = 0.6387527684341578#    branching ratio into  ('6s6p', '3P1') = 0.3519121426242965#    branching ratio into  ('6s6p', '3P2') = 0.009335088941545725##    {('6s6s', '1S0'): 0.0,#     ('6s6p', '3P0'): 0.6387527684341578,#     ('6s6p', '3P1'): 0.3519121426242965,#     ('6s6p', '3P2'): 0.009335088941545725}

或者,只计算到一个最终状态的分支:

state_i=('6s5d','3D1')state_f=('6s6p','3P0')yb.branching_ratio_LS(state_i,state_f)# Out[]: 0.6387527684341578

关于如何计算镱-173的跃迁速率的例子可以在^{}中找到。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么即使我已经给出了代码中的所有权限,该代码也没有在emulator中运行?   java Android Studio正在抛出“线程中的异常”main“javax.net.ssl.SSLException:收到致命警报:协议\版本”   java中的for循环嵌套foreach语句   java读取/src/main/resources和/webinf/classes下的文件   java无法以此格式构造JSON响应   身份验证尝试从CAS secure rest api获取响应,但从java客户端获取登录页面作为响应   如何在java中使用excel从第1列和第3列获取单元格值,并将其作为键值对放入map中   在Java程序中打开Windows虚拟键盘   java有没有递归调用findMatch的方法?   java Pig脚本/命令,用于根据多个字符串筛选文件   java最小数量应匹配,应与POST匹配   java打开/关闭声音按钮不工作   Java嵌入式数据库持久性   java在方法调用时引发异常   java文本文件被覆盖而不是保存的问题   java Hibernate sql注释