这个问题是https://stackoverflow.com/questions/44718160/solve-a-linear-system-for-fft-coefficients的后续问题
在某个时间 (kt),涡量 (omega) 的 FT 满足:
(1-nu*L*dt/2)fftomega(kt+1)=(1+nu*L*dt/2)fftomega(kt)-fft_J*dt
其中 fftomega 是 omega 的 2d fft,J(psi,omega) 是雅可比行列式(见下文),流函数 del^2(psi)=omega。L 是一个系数数组,当乘以 fftomega 时返回 omega 的拉普拉斯算子的 fft。对于 6x6 L 是
0 -1 -4 -9 -4 -1
-1 -2 -5 -10 -5 -2
-4 -5 -8 -13 -8 -5
-9 -10 -13 -18 -13 -10
-4 -5 -8 -13 -8 -5
-1 -2 -5 -10 -5 -2
Jacobian 的 fft 计算如下(为简洁起见,使用 matlab/octave 表示法):
Dx_psi=real(ifft2(Dx.*fftpsi)); %v
Dy_psi=real(ifft2(Dy.*fftpsi)); %-u
Dx_omega=real(ifft2(Dx.*fftomega));
Dy_omega=real(ifft2(Dy.*fftomega));
Jacobian = - Dy_psi.*Dx_omega + Dx_psi.*Dy_omega;
fft_J = fft2(Jacobian);
在实践中,由于 Gadzag,雅可比行列式与预测校正器方案集成(上面等式中的 -fft_j*dt 是示意性的)。如果诸如 fftomega 之类的数组与 omega 具有相同的维度,则上述方程可以作为线性方程组求解,例如 LAPACK。然而,由于物理变量是实数,因此 FFTW 等程序允许输出 fft 为非正方形 (r2c,c2r)。在这种情况下,似乎积分方程的唯一方法是将这些 fft 扩展为平方,放弃 r2c,c2r 方案提供的优势。或者,可以使物理变量具有空虚部的复数,并使用 c2c 方案。
有没有人找到可以使用 r2c、c2c 的替代方案?