非均匀网格的 FFT 泊松求解器

计算科学 数值分析 流体动力学 泊松 fftw
2021-12-15 03:42:28

我有一个不可压缩的 Navier-Stokes 方程的 3D 求解器,它使用 FFT 库来处理泊松方程,在所有方向上都有一个均匀的网格。在二维中,泊松方程由下式给出:

pxx+pyy=frhs

当使用非均匀网格时,我们通常将域映射到网格均匀的计算空间。x=x(ξ),y=y(η). 计算网格上的泊松方程为:

pξξξx2+pηηηy2+pξξxx+pηηyy=frhs

虽然我确实有数值方法的背景,但我对 FFT 方法的了解有限。非均匀网格上的泊松方程可以用 FFT 方法求解吗?如果没有,有什么替代方案?请注意,由于需要一些时间来解释的原因,多重网格和经典迭代方法(例如 jacobi...)不是一种选择。或者更确切地说,它们对于某些应用程序显示不稳定。

1个回答

首先,您可以使用非均匀网格 FFT 变体,而无需进行坐标变换。

其次,FFT 不容易应用于转换后的问题。FFT 无需变换即可轻松应用于拉普拉斯方程的原因是(在此处显示 1d 情况)

F[pxx](k)=k2F[p](k),
即,导数只是在变换下产生一个因子。因此,方程pxx=f给你
k2F[p](k)=F[f](k),
因此
F[p](k)=1k2F[f](k),
这很容易反转为
p(x)=F1[1k2F[f](k)](x).
但是如果,在左边,你从g(ξ)pξξ(ξ),那么事情并没有那么简单,因为
F[g(ξ)pξξ(ξ)]k2F[g](k)F[p](k)
或任何类似简单的东西,可以让你隔离F[p](k)到一侧。