用有限元和 Crank-Nicolson 求解薛定谔方程?

计算科学 有限元 曲柄尼科尔森 复数
2021-12-21 16:15:56

我在数学部分问过这个问题,但没有收到回复。请让我在这里问一下,看看 threr 有什么不同。

没有势的薛定谔方程具有以下形式:

tψ=i2ψ.

我使用的有限元软件不直接处理复杂函数,所以我通过将方程拆分为实部和虚部来解决它:

tψR=2ψI,tψI=2ψR.
现在,如果我应用有限元法,方程变为
MξR˙=AξI,MξI˙=AξR.

这里M是质量矩阵,并且A是扩散矩阵,我们求解ξRξI. 在这里假设周期性边界。如果我应用 Crank-Nicolson 方法,它变成

ξR,n+1=(2MΔtA2M+ΔtA)ξI,n,ξI,n+1=(2M+ΔtA2MΔtA)ξR,n.

我大致按照这篇论文来推导方程。

问题: 在一个时间步之后,函数正确地演化,但随着它演化到更进一步的时间步,解决方案只是在 0 和 1 时间步之间来回移动,因为

(2M+ΔtA2MΔtA)(2MΔtA2M+ΔtA)=I.
所以
ξR,n+2=IξR,n

这里有没有专家知道如何解决这个问题,所以我可以去进一步的时间步?谢谢。

1个回答

您在实部和虚部的索引中犯了错误。

MξR,n+1ξR,nΔt=AξI,n+1+ξI,n2MξI,n+1ξI,nΔt=AξR,n+1+ξR,n2
每个方程中都有所有 4 个向量,它不会分解您编写的方式。
[2MΔtAΔtA2M][ξR,n+1ξI,n+1]=[2MΔtAΔtA2M][ξR,n+1ξI,n+1]