当前位置: 首页 > news >正文

qutip——玩(3)

十、单粒子激发+多粒子能量传递

前面好几节我们分别讨论了多粒子激发和能量传递,那么如果把他们两个结合在一起结果会怎么样呢。这节我们就分析一下,代码如下,结果随后

N=3   
psi = tensor(basis(2,0),basis(2,0)) # 制备初态a_list, ad_list = [], []
for i in range(N): # 用循环定义每个单格点上的产生湮灭算符op_list = [qeye(2)] * Nop_list[i] = destroy(2)a_list.append(tensor(op_list))op_list[i] = create(2)ad_list.append(tensor(op_list))hal = 0
for i in range(N-1):hal += ad_list[i] + ad_list[i+1] * a_list[i]ttotal = 20
tsteps = 500
tlist = np.linspace(0, ttotal, tsteps)  # 演化时间
res = sesolve(hal,psi,tlist) # 解薛定谔方程
states = [s * s.dag() for s in res.states] # 计算密度矩阵

v2-f17289f7a6dce6c4fa13066b09960aa8_1440w (1)

结果是非常的令人满意的,初态|000>的占据从100%快速衰落,然后中间态各领风骚,最终大趋势不变的是末态|111>,占据趋近于100%。末态持续激发

十一、多粒子激发+多粒子能量双向传递

上一节我们看到了激发单个粒子,然后能量向右传递达到稳态的结果。如果我们使得能量可以双向传递,结果会怎么样的。代码如下,结果随后

N=3   
psi = tensor(basis(2,0),basis(2,0)) # 制备初态a_list, ad_list = [], []
for i in range(N): # 用循环定义每个单格点上的产生湮灭算符op_list = [qeye(2)] * Nop_list[i] = destroy(2)a_list.append(tensor(op_list))op_list[i] = create(2)ad_list.append(tensor(op_list))hal = 0
for i in range(N-1):hal += ad_list[i] + ad_list[i+1] * a_list[i] + a_list[i+1] * ad_list[i]ttotal = 20
tsteps = 500
tlist = np.linspace(0, ttotal, tsteps)  # 演化时间
res = sesolve(hal,psi,tlist) # 解薛定谔方程
states = [s * s.dag() for s in res.states] # 计算密度矩阵

v2-4bc50a18e34faa14a30db2a4a7f4cc80_1440w (1)

结果也挺不错的,每个态的趋势还是基本一样的。不同的就是,以|111>举例,上一节是平滑上升达到稳态,加入双向能量传递以后可以看到上升过程中会有波动,这也是可以理解的。能量到达右侧粒子后会像水一样反弹回来形成类似于水波纹一样的结果。是振荡激发的。

十二、单粒子激发+多粒子双格点能量双向传递

上节讨论了能量双向传递,如果我们给他加上不同的隧穿系数,能量传递会受到什么影响呢。代码如下,结果随后

N=3
a_list, ad_list = [], []
for i in range(N):op_list = [qeye(2)] * Nop_list[i] = destroy(2)a_list.append(tensor(op_list))op_list[i] = create(2)ad_list.append(tensor(op_list))
sigmap_list, sigmam_list = [], []
for i in range(N):op_list = [qeye(2)] * Nop_list[i] = sigmap()sigmap_list.append(tensor(op_list))op_list[i] = sigmam()sigmam_list.append(tensor(op_list))
ttotal = 40
tsteps = 500
tlist = np.linspace(0, ttotal, tsteps)
psi = tensor(basis(2,0),basis(2,0),basis(2,0))
hal = 0
t_1 = 1
t_2 = 0.1
for i in range(N-1):if i%2 == 0: hal += -t_1 * (ad_list[i+1] * a_list[i] + ad_list[i] * a_list[i+1])else:hal += -t_2 * (ad_list[i+1] * a_list[i] + ad_list[i] * a_list[i+1])hal += ad_list[0]
res = sesolve(hal,psi,tlist)
np.set_printoptions(threshold=np.inf)  # 遇到显示不全的用
states = [s * s.dag() for s in res.states]
# np.set_printoptions(linewidth=1000000)
states = np.real(np.array(states))
rounded_states = np.round(states, decimals=4)
np.set_printoptions(suppress=True)
# print(rounded_states)
psi000 = []
psi001 = []
psi010 = []
psi011 = []
psi100 = []
psi101 = []
psi110 = []
psi111 = []
for i in range(tsteps):psi000.append(rounded_states[i][0][0]) 
for i in range(tsteps):psi001.append(rounded_states[i][1][1])
for i in range(tsteps):psi010.append(rounded_states[i][2][2])
for i in range(tsteps):psi011.append(rounded_states[i][3][3]) 
for i in range(tsteps):psi100.append(rounded_states[i][4][4])
for i in range(tsteps):psi101.append(rounded_states[i][5][5])
for i in range(tsteps):psi110.append(rounded_states[i][6][6]) 
for i in range(tsteps):psi111.append(rounded_states[i][7][7])
plt.plot(tlist,psi000, color='r', label='000')
plt.plot(tlist,psi001, label='001')
plt.plot(tlist,psi010, label='010')
plt.plot(tlist,psi011, label='011')
plt.plot(tlist,psi100, label='100')
plt.plot(tlist,psi101, label='101')
plt.plot(tlist,psi110, label='110')
plt.plot(tlist,psi111, color='b', label='111')
plt.xlabel('Time')
plt.ylabel('Occuption')
text = "Evolution of states"
plt.title(text)
plt.legend()

v2-9c9da1cec5ccdbfdf2032611f49c7a24_1440w

我们把t2设置的非常小,意味着第二个到第三个格点的能量传递效率非常低,能量都被阻挡了。从图中我们看出在时间0-40的范围内,还有一个态是引人注目的,那就是|110>,这是因为能量被阻挡,所以只能激发前两个粒子,也是非常令人满意的。

更有甚者,我们直接把t2设置为0,完全阻挡第二个到第三个粒子的能量传递,结果也是可以预期的

v2-4789067ad7535daf5429a6d949cc4904_1440w

黑色的|111>态从始至终都是0,完美说明能量完全流不过去。如果粒子数更多,那么就会形成一种阶梯式的能量梯度,每两个粒子是一个能量台阶。(因为我设置的是奇偶格点隧穿不同,所以一个台阶或者是一个group是两个粒子。当然也可以设置每三个粒子是一个group)

十三、展望

后续还会继续改变哈密顿量,希望发现更有趣的物理现象。

http://www.jsqmd.com/news/642253/

相关文章:

  • 从精确到共识:一种关于数据架构的经济学解释
  • 【紧急预警】HuggingFace最新v4.45更新已默认禁用legacy cross-attention kernel——你的多模态微调Pipeline可能已在静默崩溃!
  • Karpathy LLM Wiki:一种将RAG从解释器模式升级为编译器模式的架构
  • 2026年4月通勤防晒霜品牌推荐:十大口碑产品评测对比顶尖上班族防光老防暗沉 - 品牌推荐
  • 2026年毕业季AIGC检测突然收严,这3款降AI工具还能稳过
  • 让计算机学会“想象“代码运行:Meta团队突破性解决编程AI的盲点
  • 2026现阶段高速护栏网厂商深度评估:安平县飞速丝网制品有限公司竞争力解析 - 2026年企业推荐榜
  • AI大模型赋能客服转型!帮我吧解锁企业服务4大技术突破
  • 【多模态大模型落地自动驾驶实战白皮书】:20年智驾专家首曝3大失败场景、5类传感器融合陷阱与实时推理优化黄金公式
  • 自动驾驶 Agent:环境感知→路径规划→车辆控制
  • YOLOv目标跟踪与自定义区域逻辑的完美结合:从手动实现到智能集成
  • 2026年4月衡水护栏服务商竞争力深度评估:谁在领跑专业市场? - 2026年企业推荐榜
  • 哪款美容仪适合你?2026年4月推荐评测口碑对比TOP5产品领先出差党便携护理暗沉 - 品牌推荐
  • 网络效应与大型语言模型辩论中的协议漂移
  • Python与爬虫
  • 2026年4月广东地区树莓原浆优质生产厂家深度解析 - 2026年企业推荐榜
  • 【maaath】Flutter 三方库 pull_to_refresh 的鸿蒙化适配与实践:列表下拉刷新与上拉加载
  • 测试工程师的加分项:自动化+AI双修指南
  • QT5.12 + libmodbus RTU实战:用多线程解决界面卡顿,打造流畅的Modbus主机程序
  • 从NeRF到ConvONet:手把手教你用Python和PyTorch搭建自己的三维重建模型(附代码)
  • AI产品经理成长手册:从代码到商业的跨越
  • 面试最后反问,说错直接淘汰
  • 多模态评估进入“后基准时代”(行业首个支持动态任务流+长时序交互+跨设备协同的评估框架V2.3正式开源)
  • Linux系统移植
  • SUMO TraCI 函数避坑指南:车辆状态获取常见错误及解决方法
  • 基于LLM的高校招生智能问答系统
  • 如何用3个简单步骤实现八大网盘文件直链提取与高效下载
  • 用RAG的思路做agent知识管理,为什么跑不通
  • 为什么顶尖开发者都懂业务逻辑?职业加分秘诀
  • ShardingSphere 5.2.1 启动报错 SPI-00001?别慌,试试降级到 5.1.1 的完整避坑指南