forked from p35462178/gks2d-str
5a7359b602 | ||
---|---|---|
code | ||
structured-mesh | ||
GKS通量参考解.txt | ||
KFVSGKSmanual.pdf | ||
LICENSE | ||
README.md |
README.md
会不断更新的!我的邮箱 xjiad@connect.ust.hk
gks2d-str
这是一个气体动理学格式(Gas-Kinetic Scheme, GKS)的求解器,支持二维结构化网格模拟,目的是方便有需求的科研工作者入门之用。 GKS是香港科技大学华人学者徐昆教授原创的针对可压缩流动的格式(推荐一篇具有很高的完成度、兼具很高的讨论深度的文献: K. Xu, 2001, JCP, A Gas-Kinetic BGK Scheme for the Navier–Stokes Equations and Its Connection with Artificial Dissipation and Godunov Method) 如用作学术用途,请引用任意下列文献:
- X. JI, F. ZHAO, W. SHYY, & K. XU (2018). A family of high-order gas-kinetic schemes and its comparison with Riemann solver based high-order methods. Journal of Computational Physics, 356, 150-173.
- X. JI, & K. XU (2020). Performance Enhancement for High-order Gas-kinetic Scheme Based on WENO-adaptive-order Reconstruction. Communication in Computational Physics, 28, 2, 539-590
功能
- 一维网格 2阶到5阶 GKS
- 二维均匀结构化单块网格 2阶到5阶 GKS
- 二维非均匀结构化单块网格 2阶到5阶 GKS
- 有限体积框架;WENO重构;多步多阶,两步四阶
- 在“GKS通量参考解”文件下提供GKS类型通量的参考数据合集
安装
windows 和 visual studio 2019
- 创建新解决方案。 选择 “c++ windows桌面向导”,勾选 “将解决方案和项目放在同一目录”; 应用程序类型是 “控制台应用程序”; 选择 “空项目”
- 把code文件夹(里面是所有源代码)和structured-mesh文件夹(是示例的结构化网格文件)复制到解决方案文件夹(和sln同目录)中。复制到其他文件夹或许也可以,关键点在于code文件夹和structured-mesh文件夹在一个目录下
- 在visual studio中添加code中的 .h文件 到头文件;添加code中的.cpp文件到 源文件
- visual studio下如果编译不通过可能是红山将文本文件的换行符改为\n(正则表达式),使用 ctrl+f 搜索 \n (一定勾选使用正则表达式)替换为 \r\n 即可以符合windows的回车换行规则了。
- 点击调试下拉菜单的 开始执行不调试(建议使用release(因为快)和x64(因为支持3.25GB以上的程序运行内存)编译)。编译成功,弹出控制台运行
linux 和 g++
- 目前linux下的安装教程可能是不完善的,因为我主要在windows下写程序
- 复制code文件夹和和structured-mesh文件夹到同一目录下,确保安装了g++,支持c++11或者以上标准,安装了openmp
- cd到code文件夹下目录,使用cmake生成makefile(cmake已经在code文件夹里面了),这一步是在code文件夹同级生成makefile cmake -B ../build
- 使用cmake调用makefile生成可执行文件,这一步code文件夹同级生成build文件夹,可执行文件在build文件夹内 cmake --build ../build
- cd到build文件夹 执行可执行文件 main
注
程序 运行代码部分采用英文命名;注释部分采用中文+英文,以行文流畅易懂为准则,因此考虑到linux下不乱码,采用utf-8编码。 在windows系统VS下添加注释建议安装forceUTF-8插件 为了兼顾vs下使用utf-8编码的注释不会扰乱运行代码,注释统一用//,而不用/**/
致谢
感谢叶宇晨(北京大学)帮我测试了最初版本的代码
感谢丁源,高行健(西安交通大学)建立了一维情况下GKS通量函数的标准参考解集合
感谢丁源,千哲(西安交通大学),编写了1维1阶KFVS 2阶KFVS 1阶GKS 2阶GKS的算法说明
感谢何志强博士告知我用git上传
特别鸣谢徐昆老师。该开源项目以及气体动理学讲习班(2022、2023)是在徐昆老师的鼓励和支持下启动的。