欢迎光临散文网 会员登陆 & 注册

涡量方程求解(vorticity)

2023-08-06 22:39 作者:uncle1234  | 我要投稿

1.方程推导

    亥姆霍兹涡量方程(Helmholtz Vorticity Equation)的推导可见参考文献[1,2],这里仅给出方程的形式。

\psi 表示流函数 \omega 表示涡量

2.数值方法

    在求解涡量方程时本文选择周期边界条件,因此使用雅各比迭代收敛速度慢,多网格和广义最小残差等求解时双周期边界问题时并不方便,因此这里我们采用谱方法进行求解。

    在谱方法中对目标函数求导是借由对 \delta 函数的插值函数求导在与目标函数线性迭加得到的。因此这里我们给出插值函数与一,二阶导数关系式。

插值函数

h表示周期间隔 h=2pi/N;N为划分的网格数

求导矩阵

这里我们以一阶导数为例:

LHS表示求导之后的值;RHSL求导矩阵;RHSR表示目标函数

一阶导数

j%N只有在j=N时为0;同时由于S为周期函数因此S(0)=S(Nh)=0;

二阶导数

值得说明的是在本文中不管是scs(x)和cot(x)函数在2pi时值区域无穷大,因此使用网格对应的周期为开区间[0 20)

3.方程化简

本文使用ndfrid函数构建二维网格,因此行表示x,列表示y。故将HV方程写为如下形式

    具体堆到过程和函数可参考文献3。

4.初始条件和运行结果

    Omega=1*sin(pi*(X-x1)/(x2-x1)).^1.*sin(pi*(Y-y1)/((y2-y1))).^15;

6.总结

    笔者针对谱方法进行简单的学习,仅仅处于了解情况。若对谱方法感兴趣的同学请参考“Matlab微分方程高效解法:谱方法原理与实现”一书,其中含有不少例题和相关代码非常适合初学者学习。本文代码则是参考书中第四章代码完成。或者有想读英文的同学也可参考文献4一书,里面更加丰富的例题。

参考文献

1. https://zhuanlan.zhihu.com/p/645998782

2. https://zhuanlan.zhihu.com/p/416872063

3. Matlab微分方程高效解法:谱方法原理与实现;第四章

4.Spectral Methods in MATLAB   by:Trefethen

涡量方程求解(vorticity)的评论 (共 条)

分享到微博请遵守国家法律