在波包模拟中加入势垒(傅里叶变换方法)

计算科学 Python 傅立叶分析 量子力学 波传播 傅里叶变换
2021-12-12 03:04:15

我正在尝试在 Python 中模拟波包在势垒处的散射。我正在使用傅里叶变换方法(不确定它是否与分步方法相同),在我的初始波包(高斯包络中的平面波)上应用傅里叶变换以获得动量空间中的波函数:

ϕ(k)=ψ(x)eikxdx
然后我计算色散项,ω, 在每一个k价值,ω=k22m. 然后我可以合并时间演化算子eiωt. 这使我能够获得ψ(x)在给定时间:

ψ(x,t)=ϕ(k)eikxeiωt
我通过傅里叶逆变换实现ϕ(k)eiωt.

我的波包按预期移动,但我现在正试图合并一个潜在的障碍。首先,我试图让我的波包反射出障碍物(就像盒子里的粒子)。

我有点不确定如何在我的代码中实现这一点。这个问题通常通过在屏障之前的区域中同时具有入射波和反射波来描述,因此我实现了一个“反射”波包,它只是初始波包的镜像,其幅度反转。可以对其进行操作以模拟从障碍物反射的波,但我想知道是否有更简单的解决方案。

问题:

  • 有没有办法使用我的波包传播方法在屏障处加入反射/透射?
  • 我已经看到使用有限差分方法解决了这个问题来解决薛定谔方程,使用这种方法有优势吗?
1个回答

傅里叶码的巧妙之处在于您可以实现非常高阶的导数,如果您描述的是关于波的物理学,那么三角基函数是一个不错的选择。你也有一个相当快的转换O(nlog(n).

傅里叶码的坏处在于,它们只能在周期性设置中真正发挥作用,并且无论您的个人资料中有什么跳跃,它们都拒绝工作

描述这一点的最佳方式是wiki:Fourier rectwiki:Gibbs 现象如果将矩形函数转换为傅立叶空间,则会在频谱中得到一个讨厌的 sinc 函数。如果您的屏障看起来像这样,那么您的傅立叶光谱将迅速恶化,您将无法通过提高分辨率来解决这个问题。

至少建议让您的屏障“平滑”,以便傅立叶基函数有机会估计它们。完全从傅立叶基础转向 FEM/FV 可能是可取的。