← 回到首页 Skip to main content

12.7 二维非结构 Euler/Navier–Stokes 求解器

12.7 二维非结构 Euler/Navier–Stokes 求解器

unstructured_2d 和 C++/unstructured_2d 目录包含在非结构三角形网格上求解二维 Euler 方程与 Navier–Stokes 方程的程序。空间离散采用5.2.2节的中位对偶单元顶点格式。对流通量、黏性通量及梯度的计算采用基于边的数据结构。程序还可模拟极低马赫数的不可压缩流动,见9.5节。

流动求解器的源代码位于 src 子目录;输入文件、网格与结果位于 run 子目录;doc 子目录包含文件、模块、函数和变量的 HTML 文档。

对流通量按 Roe 通量差分分裂格式计算,见4.3.3和5.3.2节。控制体面上的解,按式(5.42)通过左右状态的分片线性重构获得。流动变量梯度采用 Green–Gauss 方法计算,见式(5.49)、(5.50)。重构解采用5.3.5节式(5.67)的 Venkatakrishnan 限制器限制。计算黏性通量所需的控制体面上梯度,采用5.4.2节的方法获得。离散控制方程用显式多级格式积分,见6.1.1或6.1.2节,并通过局部时间推进(9.1节)与中心隐式残差光顺(9.3.2节)加速。

程序包含前述结构流动求解器的相同边界条件,但不包含注入与坐标割线。其数据结构允许每个边界面采用不同的边界条件。远场、入口和出口边界采用一层虚拟节点实现。全部边界拓扑数据,与网格坐标及节点编号一起保存在扩展名为 ugr 的同一文件中。

12.7.1 运行示例

作为测试算例,计算 VKI-1 涡轮叶栅内的跨声速流动,边界条件如下 $ [4] $:

  • 入口总压 $ p_{t,in} = 1.0 \times 10^{5} $ Pa;

  • 入口总温 $ T_{t,in} = 300.0 K $;

  • 入口流动角 $ \alpha_{inl}=30^{\circ} $;

  • 出口静压 $ p_{out} = 5.283 \times 10^{4} $ Pa。

模拟采用 Roe 迎风空间离散与显式时间推进,参数为 $ \sigma = 5.5 $、$ \epsilon = 0.4 $,限制器系数 K=1.0,熵修正系数 $ \delta = 0.05 \cdot c $。

Image
图12.8 密度残差与质量流率的收敛历程。图内 Convergence history:收敛历程;Mass flow (kg/s):质量流率(千克/秒);Iteration:迭代次数;log(residual):残差的对数。

算例网格可用12.3节和12.4节的程序生成;run 子目录还提供采用波前推进方法生成的 vki1.ugr 非结构网格,见11.2.2节。求解器需要各种参数,设置边界条件、数值格式及收敛历程与绘图文件输出;这些数据位于用户输入文件 vki1_input。假设求解器源代码已编译,详情见 README.txt,打开终端窗口(Windows 中为命令提示符),进入 run,再输入以下命令即可开始模拟:

Unstruct2D vki1_input

计算产生图12.8的收敛历程,图12.9展示叶栅内的压力等值线。