English Version:
This is a finite volume method solver for supersonic flow over a wedge based on structured mesh. Van Leer, Roe and KFVS scheme have been used for calculating the fluxes.
程序的网格生成和后处理部分依赖于Python3的numpy和matplotlib库, 请确保安装了Python3和这两个库. 我们的程序在Python 3.10.14下测试通过.
程序的计算部分由C++语言写成, 且依赖于xmake, 请确保运行环境中有可用的C++编译器和xmake. 我们的程序在Windows 11 (Visual Studio 2022)和Archlinux (g++)下测试通过.
C++部分:
main.cpp
: 主程序入口Mesh.h
: 主要的头文件Mesh.cpp
: 处理网格的源文件Flux.cpp
: 计算通量的源文件
Python部分:
MeshGen.py
: 生成网格的Python脚本, 在帮助文档给出的网格划分程序的基础上修改而来Plot.py
: 后处理的Python脚本
在MeshGen.py
中修改网格生成的参数, 运行
python MeshGen.py
即可生成网格文件. 生成的网格文件在Mesh
文件夹下.
xmake
当编译器路径在环境变量中时, 这应当可以直接解决依赖问题并编译出可执行文件.
xmake run HW6 <迭代次数> <通量处理方法>
其中<迭代次数>
是一个整数, <通量处理方法>
是一个字符串, 表示通量的处理方法, 可以是roe
(Roe格式), vl
(Van Leer格式)或kfvs
(KFVS格式).
计算结果会以Numpy的二进制格式保存在项目根目录中.
python Plot.py
绘制出计算结果的图像, 并保存在项目根目录中. 此外, 后处理脚本还会输出计算结果的压强比和马赫数.