原子单位的龙格-库塔时间步长

计算科学 龙格库塔 微分方程
2021-12-26 16:45:35

我正在使用四阶 RK 以原子单位求解薛定谔方程。假设我想以 h=10fs 的间隔模拟 400fs,那么在原子单位中,这是 h=413a.u 和 400fs=16500a.u。4RK 涉及到时间步长的重复乘法,所以当 h=413 时,一切都会崩溃。有人可以解释我错过了什么吗?

编辑:要清楚,我正在解决

ddtψ=iHψ
其中是一个向量,是一个厄米矩阵。 ψH

1个回答

这种显式龙格-库塔方法的现象被称为稳定性。对于给定的方程,系统的特征值(这里是哈密顿量)决定了数值积分方案稳定(即不会爆炸)的最大时间步长。这是一个很好的资源,其中提到了 RK4 的稳定区域正如这些资源所显示的,有一些特殊的方法,例如隐式方法,可以用来采取更大的时间步长。

但即使是显式的 Runge-Kutta 方法也可以得到增强。例如,使用具有步长稳定的自适应龙格-库塔方法(PI 自适应步长控制器)将允许该方法仅在需要稳定时采用较小的时间步长,然后允许步长(通常)更大平均的。标准 ODE 求解器软件,如MATLABFortranJulia中的软件利用这个。因此,我建议使用您的语言中可用的任何 ODE 求解器,因为它们不仅有(可能是 PI 控制的)自适应方法,而且还有用于刚性系统的积分器。这些将比 RK4 更有效,RK4 实际上是一种仅用于教学而不是用于生产的方法(其他显式 RK 方法具有更大的稳定性区域和/或相同工作量的更少错误)。