在周期边界上积分二维涡量方程

计算科学 时间积分 fftw 线性系统
2021-12-14 22:01:05

这个问题是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 的替代方案?

0个回答
没有发现任何回复~