找回密码
 注册
查看: 102993|回复: 349

发布OpenCFD-EC2D; 更新 Ver 1.5.4 ; 三维软件使用协议

  [复制链接]
发表于 2011-1-10 19:28:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
发布多块结构网格有限体积法源程序OpenCFD-EC 2D  (Open CFD code for Engineering Computing).
这个软件是我开发的一套有限体积程序,二维代码从去年8月份开始开发,三维代码从去年10月份开始开发。目前开放二维源代码。
该软件的特点是:
1)多块结构网格有限体积法。
2)支持NND, 3阶迎风,3阶WENO,3阶MUSCL以及自行开发的OMUSCL2等多种格式。
3)支持原始变量、守恒变量及特征变量重构。
4)支持Steger-Warming, Van Leer, Roe, HLL, HLLC, AUSM等多种通量技术。
5)支持BL、SA和SST 湍流模型 .
6) 支持1阶Euler,3阶Runge-Kutta以及LU-SGS等多种时间推进方法。
7)支持多重网格技术。

该软件的大部分代码由我编写,少部分代码由我的学生冷岩编写。
欢迎使用本软件并提出宝贵意见。
[版权声明] 如在科研中使用或参考本软件,请务必在论文(报告)中标注,并引用作者文献。

更新
---------------------------------------
2011-4-11: 升级到了版本1.1, 支持多重网格(最多3重)。用户可修改control.in中的Num_Mesh 值来设置网格重数(1为单重网格,2为两重网格,3为3重网格;最多为3重)
程序、算例及更新版的理论手册可在本贴的主贴中下载 (OpenCFD-EC2D-1.1.rar)
包含了一个RAE2822翼型绕流的完整算例。
直接编译主程序opencfd_ec2d_v1.1.f90 并执行即可。 运行后残差在Residual.dat中,流场在flow2d.dat中(tecplot格式)。可用read_flow-1.1.f90 进行流场后处理,画出壁面压力系数分布Cp.dat (tecplot格式)
-------------------------------------------
2012-1-3:   更新:理论手册2012版,添加了LU-SGS内容(3.2节)
2012-4-28: 发布OpenCFD-EC2D ver 1.3, 包含LU-SGS 模块代码
             发布理论手册2012-4版,包含了k-w SST湍流模型的介绍
            (含k-w SST模型的二维代码随后发布);
2012-5-4: 发布OpenCFD-EC2D ver 1.4, 含k-w SST 湍流模型 (发布包中含有一个RAE2822完整算例)
                    理论手册2012-5-4版;
2012-5-24: 发布OpenCFD-EC2D ver 1.4.3版, 含SA模型 (包含一个RAE2822的完整算例)。
            注:本版本的OpenMP没有经过测试,尚不能使用。如需要使用OpenMP的话请等待下一版本。
            发布理论手册2012-5-20版。 与上一版本相比,该版增加了如下内容:
            a) BL,SA模型介绍;
            b) OpenMP并行介绍;  下一版本的Opencfd-EC 2D将支持openMP
            c) 高精度有限差分-有限体积混合方法。 下一版本的OpenCFD-EC将支持该方法
       (上午发的 ver 1.4.3版缺失了主程序, 刚才更新的是完整的)
--------------------------
2012-5-28:   发布OpenCFD-EC2D ver 1.5.0
         1) 支持有限体积-高精度有限差分混合方法。 其中差分块采用5阶精度WENO格式 (后续版本将支持其他高精度格式)。 用户可通过设置FDM.in文件来控制哪些网格块采用高精度差分法 (删除该文件意味着不使用差分法)。
     2) 支持OpenMP。 编译时需使用-openmp  或/Qopenmp选项以支持openMP。 用户可通过设置control.in中的NUM_THREADS参数来设定进程数。
    发布包中有一个完整的RAE2822算例,使用差分-有限体积混合方法,其中在网格块2 (即包含翼型的网格区)采用差分法。下图为计算结果。
---------------------------------
2012-10-9:OpenCFD-EC2D 更新至ver 1.5.1
      支持双时间步LU-SGS方法。 采用该方法,即使非定常计算时仍可使用较大的时间步长(当然,步长仍受物理问题限制)。
     发表包中包含一个完整的圆柱绕流(二维)算例。
     动画: 圆柱绕流,Re=1000(用半径定义),Ma=0.3;
            OpenCFD-EC2D ver 1.5.1, OMUSCL2+Van Leer, 双时间步LU-SGS方法
            图中动画为熵(p/(rho**gamma))的瞬时云图
----------------------------------------
2013-4-26: 开发了CGNS文件转换器(convert-cgns-inp-1.0.f90), 该程序可以将CGNS的对接网格转换为Gridgen的Generic格式(PLOT3D格式的网格及.inp格式的边界条件文件)
2013-5-5: 修改了convert-cgns-inp-1.0.f90 中的Bug, 升级到1.1a
2013-6-9: 升级到ver 1.5.4; 修正了原先代码中SST k-w 模型中的Bug (与无量纲化有关);
          新版的理论手册 (修改了 SST k-w 模型部分)


==============================        
       附:《OpenCFD 系列软件使用协议》
           如需要三维软件, 请填写该协议扫描后发给我(lixl@imech.ac.cn) ,协议最好由固定人员(非学生)签署。 收到协议后,我再将三维程序发过去。

[ 本帖最后由 lixl-imech 于 2013-6-9 08:52 编辑 ]
export.jpg
export.jpg
cylinder-Re1000.gif

OpenCFD-EC2D-1.0.rar

20.65 KB, 下载次数: 3952

OpenCFD-EC2D-1.1.rar

260.17 KB, 下载次数: 4630

OpenCFD-EC2D-1.3.zip

292.65 KB, 下载次数: 3070

OpenCFD-EC理论手册-2012-4.pdf

1.26 MB, 下载次数: 3410

OpenCFD-EC2D-1.4.zip

300.25 KB, 下载次数: 3373

OpenCFD-EC理论手册-2012-5-4.pdf

1.36 MB, 下载次数: 3232

OpenCFD-EC理论手册-2012-5-20.pdf

1.9 MB, 下载次数: 4301

OpenCFD-EC2D-1.4.3.zip

512.04 KB, 下载次数: 2866

OpenCFD-EC2D-1.5.0.zip

307.46 KB, 下载次数: 3194

opecfd-ec2d-1.5.1.zip

1.2 MB, 下载次数: 4331

OpenCFD-EC理论手册-2012-10-7.pdf

2.11 MB, 下载次数: 4371

CGNS到Gridgen格式转换器.doc

205.5 KB, 下载次数: 2425

convert-cgns-inp-1.1a.zip

4.44 KB, 下载次数: 2188

OpenCFD-EC2D-1.5.4.zip

309.38 KB, 下载次数: 2712

OpenCFD-EC理论手册-2013-6.pdf

2.15 MB, 下载次数: 3793

OpenCFD系列软件使用协议.doc

28 KB, 下载次数: 1879

评分

1

查看全部评分

 楼主| 发表于 2011-4-27 15:06:51 | 显示全部楼层

多块结构网格前处理程序: 利用几何信息,构建连接关系

发布我编写的一个小程序,可以利用多块对接网格的坐标信息构建各块之间的连接关系。
功能:根据多块对接结构网格的几何信息,通过搜索算法,构建网格连接信息。
要求:网格必须为多块对接网格(对嵌套网格无效);网格文件名为Mesh3d.dat,必须为PLOT3D格式。


使用方法:
使用时,将其与PLOT3D格式的网格文件Mesh3d.dat放在一个子目录里,编译并运行即可。
运行时,根据提示,输入如下信息
   1) 首先输入距离限度Dist_limit (阈值), 本程序使用距离搜索匹配连接点, 距离小于Dist_limit的两个点被认为是“连接点”。如果输入负值(如-1.),则软件自动确定该阈值 (选取全局最小网格间距的一半作为该阈值), 推荐输入-1., 让程序自动选取阈值。
2) 询问Mesh3d.dat是Formatted格式的文件还是Unformatted格式的文件。如是Unformatted格式的,则输入0;如果是Formatted格式的,则输入1.
3) 询问是否需要全局搜索匹配点,如未建立匹配信息,则需要搜索,需要输入 0。
输入这三个数后,程序开始运行,运行后产生BXCFD格式的连接信息文件 bcin。 bcin文件的格式与BXCFD的连接文件兼容,无任何连接点的子块,其连接号设置为-1 。
本程序只能识别内边界信息,无法区分其他边界(如固壁、远场、对称面等)。需要用户手工修改这些无连接号的子面,根据实际的边界条件,修改为-10 ,-20, -30等。

4) 1.4之后的版本附带“智能识别”功能,对于类似DLR-F4/F6之类的标模网格,可以“智能识别”固壁、远场及对称面。因为这类网格的计算区域通常为矩形,对称面为y=0的面,远场边界为该矩形的其他5个面,其余面为固壁。(仅)对于这种情况,可以使用“智能识别”功能。即,程序提示“Do you want to search the wall and Far field boundary (1 for yes, 0 for no ) ? ” 时,输入1即可。
其他情况下,“智能识别”出来的固壁、对称面及远场边界会出现问题。 请输入0。 然后手工编辑bcin文件,将标识为“-1”的边界,人工设定为固壁、远场或对称面。

[ 本帖最后由 lixl-imech 于 2011-4-29 11:23 编辑 ]

多块对接网格构建连接关系程序使用说明.doc

30 KB, 下载次数: 888

OpenCFD-EC理论手册-ver1.1.pdf

1.13 MB, 下载次数: 1013

get_bcin_v1.4.1.rar

8.59 KB, 下载次数: 1012

多块网格连接信息搜索算法-ver1.4.doc

1.52 MB, 下载次数: 1354

回复 支持 0 反对 1

使用道具 举报

 楼主| 发表于 2011-1-10 19:32:24 | 显示全部楼层
OpenCFD-EC 理论手册(尚未全部完成)。

OpenCFD-EC理论手册.pdf

975.87 KB, 下载次数: 4534

 楼主| 发表于 2011-1-10 19:57:11 | 显示全部楼层

算例: RAE2822翼型绕流

压缩文档中包含三个文件:
Mesh2d.dat : 网格文件,多块结构(对接)网格。 PLOT3D格式。

bc2d_in.dat: 网格连接文件,记录网格连接及边界条件信息,有些类似于CFL3D的inp文件。
其中的neighb为与该面相连接的块的编号。如果为负则表示该面不是一个连接面而是一个边界面。比较常用的是-10表示固壁,-20表示远场。 熟悉CFL3D的用户应当不难理解该文件的格式。
我编制了一个小程序,可以从网格文件(必须是多块对接网格,不能是重叠网格)自动搜索出网格连接信息。

control.in是控制文件,格式如下。
         read(99,*) Ma, Re, gamma, AoA,Pr,t_end,Kstep_save, Iflag_turbulence_model,Iflag_init
        read(99,*)
        read(99,*) Iflag_local_dt,dt_init,CFL,dtmax,dtmin,Time_Method
               read(99,*)
              read(99,*) Iflag_Scheme,Iflag_Flux,IFlag_Reconstruction
Ma,Re,gamma,AoA,Pt分别是Mach数,Reynolds数,比热比(通常为1.4),攻角,Plandtl数。
t_end为计算结束的时间(无量纲),推进到该时间后,计算将结束。
kstep_save为存储的步数,即每个kstep_save时间步程序将存储一个数据场(目前为tecplot格式,可直接绘制图)。
Iflag_turbulence 为湍流模型,0为层流,1为BL模型。
Iflag_init 为0表示从0流场开始计算;1表示从给定流场(flow2d.dat)开始计算。
Iflag_local_dt为0表示全局时间步长,1表示当地时间步长。采用全局时间步长时,设定时间步长为dt_init.
CFL为CFL数。dtmax,dtmin为采用当地时间步长时使用的时间步长限制。
Time_Method为1  表示1阶Euler, 3为3阶R-K.

test-RAE2822.rar

229.49 KB, 下载次数: 4129

发表于 2011-1-10 20:09:34 | 显示全部楼层
支持李老师!
 楼主| 发表于 2011-1-10 20:11:48 | 显示全部楼层
以上算例的运行方法:
  建立一个目录,将编译好的可执行文件考入该目录,将上面压缩文档中的三个文件也考入该目录运行即可。
  程序会输出残差,并且每2000步更新一下流场数据文件flow2d.dat (tecplot格式)。由于control.in设定的计算时间很长,因此程序不会自行结束。通过观察发现残差收敛就可以停掉该程序了(例如运行了2到3万步,通常在微机上运行二、三十分钟左右)。
  程序输出flow2d.dat为流场数据,可直接使用tecplot画图。 也可用readflow.f90读取该数据,绘制表面上的压力系数(Cp)曲线。
  当前control.in设定的时间推进方法为1阶Euler,虽然推进速度快,但残差收敛不好。可改成3阶R-K方法(在control.in 中把Time_Method的值从1改为3)。改成R-K方法后,残差基本上可收敛到机器0 (采用AUSM-PW方法除外),这需要在微机上进行几个小时的计算。
  图片为用该程序算的RAE2822压力系数分布以及残差的收敛情况,计算使用3阶R-K方法。计算及图片由冷岩制作。

[ 本帖最后由 lixl-imech 于 2011-1-10 20:31 编辑 ]
tmp1.JPG
 楼主| 发表于 2011-1-10 20:17:29 | 显示全部楼层
附件中的文档是我前两天作的报告,里面有对这个软件的介绍。

可压缩湍流DNS及飞行器流场CFD软件开发-李新亮.pdf

3.33 MB, 下载次数: 7590

发表于 2011-1-10 21:08:01 | 显示全部楼层

回复 6# lixl-imech 的帖子

刚才订了一本您出的那本书,呵呵……在你那报告里提到的
发表于 2011-1-10 21:48:36 | 显示全部楼层
支持。结果看起来也很不错。

我还有两个问题:
(1)对于这个开源程序,长远的计划是什么?973结束后,还有时间搞吗?是不是要成立一个公司?如何技术支持?
(2)是不是会改用GUN license?

其实,核心是,要用的话,用户也希望能够长久的用下去。所以,要么作者继续开发,要么让用户或别人继续开发。
 楼主| 发表于 2011-1-11 08:06:34 | 显示全部楼层
原帖由 通流 于 2011-1-10 21:48 发表
支持。结果看起来也很不错。

我还有两个问题:
(1)对于这个开源程序,长远的计划是什么?973结束后,还有时间搞吗?是不是要成立一个公司?如何技术支持?
(2)是不是会改用GUN license?

其实,核心是, ...


我会不断地发展这个软件。
前一个软件(差分求解器OpenCFD-SC)从开发到现在已经5年了,经历了科学院创新基金、自然科学基金、973等多个项目。如果有时间,我将改写这个软件,采用Module 等面向对象的编程方法改进各子程序接口。然后开放给大家。
也欢迎大家在这个软件基础上进行修改。修改后最好也要开源。另外,标注和引用是必要的。
我渴望或幻想能按照Linux的发展方式。 最开始有一个初步的版本,然后网上的高手都来修改丰富,最终形成一套好用、实用的开源CFD软件。
发表于 2011-1-11 08:15:28 | 显示全部楼层
如果用GNU license的话,就会与你的版权声明有矛盾。因为GNU唯一要求的是,别人拿去修改后的程序,不能对其他的人有任何限制。所以别人是可以拿去赚钱的。只是即使是别人在此基础上开发的软件,也得公开,并且不能有任何限制。一旦沾上GNU,甩也甩不掉。但对于程序开发,确实是个途径。
发表于 2011-1-11 11:06:42 | 显示全部楼层
原帖由 通流 于 2011-1-11 08:15 发表
如果用GNU license的话,就会与你的版权声明有矛盾。因为GNU唯一要求的是,别人拿去修改后的程序,不能对其他的人有任何限制。所以别人是可以拿去赚钱的。只是即使是别人在此基础上开发的软件,也得公开,并且不能有 ...

不是这样子吧,BSD许可证可以允许商用,GPL的不可以商用必须继续开源。GPL后续的衍生协议允许以某种形式商用,但是不能够直接商用。
发表于 2011-1-11 11:18:19 | 显示全部楼层
如果我没有搞错的话,BSD用的不是GNU license。GPL并没有商用的限制。 GNU说的free不是免费,而是freedom。你怎么用都可以,但不能妨碍别人用你的东西,改你的东西,或者拿你得东西去赚钱。GNU宣言读起来有点共产主义的味道。

BSD是伯克利的一套,GNU是麻省理工学院的。两家有点竞争关系。两家的text editor都不同。伯克利用vi,MIT用 Emacs。
发表于 2011-1-11 11:35:34 | 显示全部楼层
WINDOWS下CV6.6编译出错,另外程序没有隐推进吗,一阶euler 是前向欧拉还是后向euler? 前向euler本身就是不稳定的,如果是后向euler,那采用的是什么方法呢
 楼主| 发表于 2011-1-11 13:33:31 | 显示全部楼层
原帖由 通流 于 2011-1-11 08:15 发表
如果用GNU license的话,就会与你的版权声明有矛盾。因为GNU唯一要求的是,别人拿去修改后的程序,不能对其他的人有任何限制。所以别人是可以拿去赚钱的。只是即使是别人在此基础上开发的软件,也得公开,并且不能有 ...

我改了版权声明。这个程序也可以被用于商业的计算,例如承担横向课题的数值计算等。但不能拿我的程序(全部或部分程序)去卖钱。
 楼主| 发表于 2011-1-11 13:37:28 | 显示全部楼层
原帖由 DNS 于 2011-1-11 11:35 发表
WINDOWS下CV6.6编译出错,另外程序没有隐推进吗,一阶euler 是前向欧拉还是后向euler? 前向euler本身就是不稳定的,如果是后向euler,那采用的是什么方法呢

我刚试了一下,Visual Fortran编译不会出现问题。
请只编译主程序:opencfd_ec2d_v1.0.f90 即可。 因为各子程序是通过主程序尾的 include语句嵌入到主程序里面的。
1阶Euler是向前Euler(显格式)。 1阶Euler与迎风格式配合是条件稳定的 (对于单波方程,1阶Euler+2阶中心是不稳定的)。
隐格式及多重网格等加速收敛技术将会在后续版本中提供支持。

[ 本帖最后由 lixl-imech 于 2011-1-11 13:43 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表