首页/文章/ 详情

CFDer的Plan B

精品
作者优秀平台推荐
详细信息
文章亮点
作者优秀
优秀教师/意见领袖/博士学历/特邀专家
平台推荐
内容稀缺
4年前浏览2740

前两天,matlab禁了哈工大与哈工程的文章刷爆了朋友圈,这两天,呼吁国家砸钱搞国有工业软件的文章又刷爆了朋友圈。对于CFD纯应用的人来讲,工业软件开发的事情我们多半不用管,有什么用什么才是正道。个人看来,就目前这形势,再过10年国内大概也不会有一款能拿得出手的通用CFD软件(能和Fluent、Star CCM+正面PK),至于那些深藏功与名的内部单位使用软件,与吾等平头百姓多半也不会有交集。


扯远了,今天的话题不是这个,今天来扯一扯没有了商用软件该怎么处理,虽然说这种情况不大可能会发生在吾等头上,但是从最极端的状态去考虑,多条退路总是不错的。作为一个CFD应用人员,平时不怎么关注CFD内部算法,就算要找备胎,那也要找一些尽可能简化操作的备胎。有句话说的好:“你可以不用,但你不能不会用”。真事到临头了,好歹能有个回旋的余地。

想象一下CFD商业软件被禁用的场景(在这之前,操作系统多半也会被禁用):

  • 来自欧美国家的操作系统不给使用。转而使用Linux或Unix系统,还只能使用开源版,水果机就不别玩了
  • CAD建模软件。国产有一些3D CAD软件,然而好像多数都是工作在窗户系统下的,Linux或Unix系统下的极少。前些年听说中望CAD要开发Linux系统下的软件,不过那个是对标Autocad的二维图纸软件。中望3D还没发现Linux版本的,不知道现在有了没有。不过Linux下可以找一些备胎,如简单的几何建模可以使用Salome,复杂几何模型可以试试FreeCAD,这两款都是开源的。
  • 网格生成软件。找了一圈国产的几乎没有,去年空气动力中心宣传了一波他们的NNW-GridStar,今天上他们网站看了一下,已经更新到了2.5版本,而且提供免费下载,值得赞一个。不过我只发现了x86/x64版本的,没有找到支持Linux版本的。既然窗口系统不让用了,这似乎也耍不成了。Linux下可以选择的网格生成软件其实有一些,比如Gmesh、Salome等,现在也没办法去讲究好不好用了。
  • 求解器。通用的国产CFD软件基本没发现,但据不知名网友透露,在神秘部门用了很多自己开发的软件,不过这玩意儿我们平头百姓摸不着,也无从去考证消息是否属实。开源的通用CFD求解器可以使用OpenFOAM或Code Saturne。
  • 后处理。不需要选择,ParaView毫无疑问。

1 几何建模

几何建模可以尝试使用FreeCAD。FreeCAD是一款开源的CAD软件,其基于开源库OpenCASCADE,能够应付绝大多数几何建模问题。其官方网址:https://www.freecadweb.org/,提供了windows、Mac以及Linux版本的下载。FreeCAD开源代码仓库地址为https://github.com/FreeCAD/FreeCAD,有软件开发兴趣的道友可以试试,目前有不少人开发了基于FreeCAD的有限元和有限体积法插件用于结构和流体计算。

注:Open CASCADE(官网地址https://www.opencascade.com/)是一套开放源码的CAD/CAM/CAE几何模型核心,源自于法国的Matra Datavision公司,这一套函数库系统原来是著名的CADCAM软体EUCLID的开发平台,但是在1998年, Matra Datavision改变了经营策略,从以销售软体为主改变为提供CAD/CAM/CAE软体服务为主的获利模式,并且在1999年公布Open CASCADE的程序源代码,任何人都可以在该公司的网站上下载并且使用这些代码。可惜国内那么多宣称搞自主软件的公司,就没几个搞出了名堂。

FreeCAD的工作界面如下图所示,看着有点粗糙,不过几何建模基本功能还算齐全。

▲ FreeCAD工作界面

2 几何处理及网格划分

采用Salome进行几何清理及网格划分是最理想的选择。

Salome(官网地址:https://www.salome-platform.org/)可以用于数值模拟的前处理及后处理。其包含了部分的几何建模功能,包含较为强大的几何清理功能以及网格生成功能,同时还具备较强的后处理功能。目前有不少独立开发的开源求解器可以被集成到Salome中,从而形成完整的数值仿真平台。如Salome官方提供了Salome-mech(集成了开源固体结构求解器Code-Aster)、Salome-CFD(集成了开源流体求解器Code_Saturne)等。

Salome官网提供的该软件的核心功能:

  • 创建,修改,导入和导出几何模型(IGES, STEP, BREP,…),���复和清理CAD模型
  • 为CAD模型生成网格、编辑网格、检查网格质量、导入和导出网格数据(MED, UNV, DAT, STL,…)
  • 处理几何模型的物理属性
  • 使用一个或多个外部求解器执行求解计算
  • 显示计算结果(标量、矢量数据)
  • 流程管理(创建、保存、重新加载等)。

Salome基于OpenCASCADE,其官网提供了Linux版本及Windows版本,同时也提供了源代码版本,用户可以在源代码基础上进行自己的前后处理器。下图为Salome的后处理模块(呃,其实就是Paraview)。

事实上Salome只是一个平台,其将大量的开源模块集成到了一起。

▲ Salome工作界面

3 CFD求解器

开源CFD求解器其实有很多,不过大多是专注某一领域。通用的开源CFD求解器目前应用比较多的有OpenFOAM及Code_Saturne。

国内耍OpenFOAM(官网地址:https://openfoam.org/)的较多,但大多都是打着算法开发的旗子,真正将OpenFOAM用于工程的见得不多。纯正的OpenFOAM只是一个CFD算法库,不过其中给出了一些常用应用场景的求解器(标准求解器),这些求解器使用的都是公开的算法,和商业CFD软件相比(默认设置条件下的收敛性、稳定性、计算精度、并行效率等方面的比较),技术上还存在不小的差距。

OpenFOAM目前以文件式输入参数,估计官方未来也不会有GUI。不过已经有一些基于OpenFOAM求解器开发的GUI界面软件(我了解到的如TCFD、simflow等商业软件),还有一大批基于web界面以OpenFOAM作为求解器的云端CFD软件。TCFD我没有使用过(申请使用,人家不鸟我),不过在油管上看了不少TCFD的演示视频,其基于ParaView进行界面开发,看着不是有点土。simflow的界面看着比较清爽,不过试用版只限制最大网格数量为200000,这点儿网格量很多二维都耍不了。国内那些嚷嚷着开发工业软件的团队,怎么就没有人搞一个类似的呢?别整天想着国家投钱造轮子,先拿个能用产品的把生态建立起来再考虑造轮子,难道不好么?

Code_Saturne 是由法国EDF公司自1997年起研发的一款通用计算流体力学开源软件。其基于有限体积方法,支持多种类型网格,可求解纳维-斯托克斯方程,可处理多种流体计算问题。Code Saturne官方网址:https://www.code-saturne.org/。与OpenFOAM不同,Code_Saturne更像是一款通用软件,其拥有GUI界面,也可以作为求解器直接集成到Salome中,对于工程应用来说,其友好程度完胜OpenFOAM,当然Code_Saturne作为开源软件,其代码也是可以直接操纵的,其源代码仓库地址:https://github.com/code-saturne/code_saturne。但是Code_Saturne源代码用的是Fortran语言,虽然最近加了很多Python包装,但总觉得没有多少开发价值,不过直接作为求解器使用还是不错的,搞开发的话,还是OpenFOAM吧,毕竟用的是C++。

▲ Code_Saturne工作界面

4 后处理器

后处理毫无疑问使用ParaView,就算在窗口操作系统下也有大量的人使用ParaView,其实ParaView的表现还是很不错的,比起那些商用的后处理器来,一点也不逊色。只不过我不怎么喜欢ParaView的界面,觉得太过繁杂了一些。

ParaView也是开源软件,其官方网址:https://www.paraview.org/。官网上提供了预编译版本以及源代码下载。这个不用介绍太多,有兴趣的自己去其官网查阅相关信息。

▲ ParaView渲染后处理

Fluent其他专业通用科普
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2020-07-24
最近编辑:4年前
CFD之道
博士 | 教师 探讨CFD职场生活,闲谈CFD里外
获赞 2567粉丝 11304文章 734课程 27
点赞
收藏
作者推荐

免费 5.0
未登录
1条评论
嘻嘻
签名征集中
3年前
学习了
回复
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈