qmsolve包绘制自由微观粒子波函数的时间演化

文章详细展示了如何用qmsolve包解决一维自由粒子的薛定谔方程,并演示了如何生成动态可视化。还提到了如何修改代码以保存为GIF格式。
摘要由CSDN通过智能技术生成

        qmsolve包可以将薛定谔方程可视化,下面介绍一下一维自由微观粒子的薛定谔方程解。

import numpy as np
from qmsolve import Hamiltonian, SingleParticle, TimeSimulation, init_visualization, femtoseconds, m_e, Å

#定义势能项为零
def potential_barrier(particle):
    #每个粒子点的势能都要设置
    barrier = np.zeros(np.shape(particle.x))
    return barrier

#建立哈密顿系统,粒子=单粒子(m_e为电子质量),势能项,空间维度为1,
#绘制线的步数为600,运动范围为150
H = Hamiltonian(particles = SingleParticle(m = m_e), 
                potential = potential_barrier, 
                spatial_ndim = 1, N = 600, extent = 150 * Å)


#定义初态为高斯波包 
def initial_wavefunction(particle):
    σ = 0.7 * Å    #方差
    v0 = 40 * Å / femtoseconds    #速度
    p_x0 = m_e * v0    #动量项
    return np.exp( -1/(4* σ**2) * ((particle.x+100)**2) / np.sqrt(2*np.pi* σ**2))  *np.exp(p_x0*particle.x*1j)#particle.x+100为初始位置

#总时长
total_time = 0.5 * femtoseconds * 4

#设立含时哈密顿量解,利用分步傅里叶法
sim = TimeSimulation(hamiltonian = H, method = "split-step")

#开始模拟,初态,总时间,时间间隔
sim.run(initial_wavefunction, total_time = total_time, dt = total_time/9000., store_steps = 800)

#画出波函数时间演化图
visualization = init_visualization(sim)
visualization.animate(animation_duration = 5, fps = 30,)

可得:

        qmsolve包的作者会将该时间演化输出保存为mp4格式,如果要保存为gif动态图需要修改一下源代码:

打开C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\qmsolve\visualization\single_particle_1D.py,(这是我电脑包的地址),打开此文件,在464行和465行之间加代码:a.save("freedom.gif",writer="pillow",dpi = 80),即可保存为gif文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值