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 $。

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