forked from OpenCFD-IMECH/OpenCFD-EC
-
Notifications
You must be signed in to change notification settings - Fork 0
高精度多块网格有限体积CFD
License
Jiasense/OpenCFD-EC
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
-------OpenCFD-EC (c) by Li Xinliang, lixl@imech.ac.cn------------------- 编译方法: 主程序编译,运行make即可 (如有问题,请修改makefile). 注: 需要MPI库及Fortran 90 编译器支持; CGNS网格转换器编译: ifort -O3 -o convert-cgns-inp-1.1a.out convert-cgns-inp-1.1a.f90 -lcgns 注: 需要CGNS库, 下载地址 http://cgns.sourceforge.net/ 安装方法(以cgnslib_3.1.4为例): 1) 下载原始文件 (例如cgnslib_3.1.4.tar.gz), 解压 2) 进入 ./cgnslib_3.1.4/src 3) ./configure --with-fortran 4) make (或make all, 编译全部工具) 5) sudo make install (需要超级用户口令) (该命令将头文件(*.h)拷贝到./usr/local/include 文件夹下面; 将库文件 (libcgns.a)拷贝到/usr/local/lib文件夹下) 如无超级用户口令,可手工将 *.h及 libcgns.a 拷贝到用户指定的目录。 运行方法: 1) 准备好网格文件Mesh3d.dat (PLOT3D格式, format与unformat 均可; 即Gridgen的 Generic格式) 2)准备好边界条件文件 bc3d.inp (Gridgen 的Generic 格式) 3) 如使用CGNS格式的网格文件 (grid.cgns),可用convert-cgns-1.1a.out 将其转换为Mesh3d.dat及bc3d.inp 4)编辑修改控制文件control.ec 设置 流动参数及计算方法等; 其中Ma,Re 分别为Mach数及Reynolds数; AoA 为攻角 , AoS为侧滑角 ; (单位为度) 5)运行 mpirun -np xx ./opencfd-1.04.out (或用bsub 等方式提交) xx 可为1,2,3,4, ... 但不能超过网格的总块数。 注1: 如无wall_dist.dat (记录每个网格点到最近壁面的距离), 则程序开始时先生成该文件,需要消耗一些时间; 运行时输出残差到Residual.dat (各方程的最大残差即均方根残差) 运行时输出整个物体承受的气动力6分量到force.log 各列含义: 计算步, CL, CD, CS, CMx, CMy, CMz (升力系数、阻力系数、侧向力系数,三个方向的力矩系数, Ver1.04起,均按照通常定义无量纲化)。 对于定常问题,请根据残差(或气动力)的收敛情况,判断是否可结束计算。 注2: 如使用OpenMP, 则需要: 1)在makefile中打开openmp开关(设定 opt=-O3 -openmp),然后重新编译。 2)在控制文件中设定NUM_THREADS的数目 (例如NUM_THREADS=4, 设定为1为单线程串行)。 后处理方法: 运行 readflow3d-ver1.7.f90; 该程序将以tecplot格式输出壁面及对称面上的二维场,以及全流场的三维场。 CGNS网格处理方法: 本版通过转换器本支持CGNS网格,具体方法: 1) 准备好CGNS格式的网格文件 grid.cgns 2) 运行 ./convert-cgns-1.1a.out (读入grid.cgns, 生成Mesh3d.dat 及bc3d.inp) ---------------------相关输入数据----------------------------------------------------- 以下文件夹中包含了一些示例计算,为了减少数据量,文件夹中并不包含网格文件,网格文件请到指定位置下载。 1) ./case/DLR-F4: DLR-F4 翼身组合体 (粗网格) 具体使用方法见该目录下的readme.txt 2) ./case/M6-wing: ONEAR M6-wing 三维翼 (粗网格) control.ec 主控文件 bc3d.inp 边界条件文件 网格文件(Mesh3d.dat) 请到作者的网盘下载 (https://skydrive.live.com/?cid=1cc0dcbff560c149, 公开->OpenCFD-EC->算例->M6-Wing) 该网格为4块,因而MPI并行运行,最多不超过4进程 (推荐2进程)。 !----------------------------- 版本更新记录: 0.98c: 改写了SA模型部分,采用类似无量纲计算(含Re), 参考《CFL3D手册》 (与CFL3D无量纲化有所区别,因而不包含Mach数); 0.99: 改写了滤波部分 1.00: 支持自定义边界条件 1.01: 增加了边界格式功能(允许边界使用低阶精度格式) 1.02: 增加了WENO7格式 1.03: 对控制文件的格式进行了修改支持 NAMELIST格式 1.04: 对输出进行了修改(报错信息,气动力、矩信息) 1.05: 对差分格式进行了修改; 去掉了WENO3格式,补充了 MUSCL2 with k=-1 (迎风型); 原MUSCL2 是k=1的中心型MUSSCL 1.05a: 对压力、密度的增量进行了限制(类似CFL3D的做法),以增强稳定性; 1.05b: 修改了角点处理方式 (角点薄层近似) 1.05d: 在压力、密度限制方面进行了修改,(局部平均) 1.06: 采用限制措施(限制最低、最高密度、压力及速度) 1.06a: 对SA等扩展方程也进行了限制; 1.07: 对OMUSCL2进行了修改, 添加了New-SA模型; 1.07a: new SA模型的系数可在控制文件中修改; 1.1: 增加了叶轮机械(压气机、涡轮等)计算功能,使用旋转坐标系 (含源项) 1.1a: 修正了背压定义的Bug (压力应当用动压无量纲化,而不是用来流总压) 1.11:修正了与X,Y,Z坐标定义及计算CL,CD的Bug, 使得对于Z-坐标轴向上的网格也能输出正确的气动力系数 (需设置Cood_Y_UP=0) 1.12: 恢复对差分-有限体积混合方法的支持; 1.13: 增加了内流模式;与叶轮机械模式类似(但不含旋转); 1.13b: 修改了Roe 格式中的Bug; 1.13c:添加了时间相关入口边界条件 (读取时间序列), 修正了Runge-Kutta 3格式中OpenMP bug, 支持时间平均 1.14: 增加了数据文件output方式(可写入不同的文件名); 1.14a: 添加了含吹吸气扰动的壁面边界条件 (作为用户自定义边界条件) 1.15: A Bug in comput_force( ) is removed; 修正了后处理粘性力计算的Bug (i-, j-, k- 面 cf应为负!) 1.15a: 修正了call output_vt() 中的Bug; 修正了readflow3d-ver2.4.f90中的Bug (read wall_dist.dat); 对边界条件进行了修改, Bc%bc .eq. BC_Inflow .and. IF_InnerFlow .eq. 0 时, 采用完全给定来流的边界条件 (不区分超、亚声速); 1.16: 提升程序鲁棒性。 如发现某块出现物理量超限(如负温度),则强制该块采用1阶迎风格式计算,该块时间步降为原先的1/10, 该块不计算粘性项; 1.16a: sub_turbulence_SST 中的Bug 被修正;
About
高精度多块网格有限体积CFD
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- Fortran 96.1%
- eC 3.8%
- Makefile 0.1%