gks2d-str/code/main.cpp

53 lines
2.5 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//说明指南:
//这是一个气体动理学格式的求解器,支持二维单块结构化网格模拟,目的是方便有需求的科研工作者入门之用。
//程序基本采用面向过程编写,没有什么弯弯绕,
//故建议从main函数 顺序 看起,搭配注释学习。注释采用土洋结合,以简洁方便的传递作者意图为原则。
//
//如用作学术用途,请引用任意下列文献:
//1X.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.
//2X.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
#include<omp.h> //omp并行尖括号<>代表外部库文件
#include"output.h" //双引号代表该项目中的头文件
//以下是几个测试算例的头文件
#include"accuracy_test.h"
#include"boundary_layer.h"
#include"cylinder.h"
#include"riemann_problem.h"
//end
using namespace std; //默认std的命名规则
//程序运行开始手动输入omp并行的线程数
//如果在函数名上面注释,那么函数在别处调用时,可以看到注释
void Set_omp_thread()
{
//在小于等于cpu核数的时候n线程可以理解为n核并行
int num_thread;
cout << "please_specify threads number for omp parallel: ";
cin >> num_thread;
omp_set_num_threads(num_thread);
}
int main()
{
Set_omp_thread(); //设置omp并行线程
make_directory_for_result(); //兼容linux的结果文件夹的临时方案
//accuracy_sinwave_1d(); //一维精度测试通过周期线性的正弦波传播算例测试格式在光滑smooth flow无粘工况下的精度
//riemann_problem_1d(); //一维黎曼问题测试,测试格式对于可压缩间断问题的鲁棒性和分辨率
//accuracy_sinwave_2d(); //二维精度测试通过二维周期线性的正弦波传播算例测试格式在光滑smooth flow无粘工况下的精度
//riemann_problem_2d(); //二维黎曼问题测试,测试格式对于多维可压缩间断问题的鲁棒性和分辨率
boundary_layer(); //二维边界层问题测试测试格式对于光滑smooth flow粘性边界的分辨率非均匀直角网格
cylinder(); //二维超音速圆柱绕流问题测试,测试格式对于间断问题和非均匀网格的鲁棒性
return 0;
}