前两天,matlab禁了哈工大与哈工程的文章刷爆了朋友圈,这两天,呼吁国家砸钱搞国有工业软件的文章又刷爆了朋友圈。对于CFD纯应用的人来讲,工业软件开发的事情我们多半不用管,有什么用什么才是正道。个人看来,就目前这形势,再过10年国内大概也不会有一款能拿得出手的通用CFD软件(能和Fluent、Star CCM+正面PK),至于那些深藏功与名的内部单位使用软件,与吾等平头百姓多半也不会有交集。
扯远了,今天的话题不是这个,今天来扯一扯没有了商用软件该怎么处理,虽然说这种情况不大可能会发生在吾等头上,但是从最极端的状态去考虑,多条退路总是不错的。作为一个CFD应用人员,平时不怎么关注CFD内部算法,就算要找备胎,那也要找一些尽可能简化操作的备胎。有句话说的好:“你可以不用,但你不能不会用”。真事到临头了,好歹能有个回旋的余地。
想象一下CFD商业软件被禁用的场景(在这之前,操作系统多半也会被禁用):
几何建模可以尝试使用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工作界面
采用Salome进行几何清理及网格划分是最理想的选择。
Salome(官网地址:https://www.salome-platform.org/)可以用于数值模拟的前处理及后处理。其包含了部分的几何建模功能,包含较为强大的几何清理功能以及网格生成功能,同时还具备较强的后处理功能。目前有不少独立开发的开源求解器可以被集成到Salome中,从而形成完整的数值仿真平台。如Salome官方提供了Salome-mech(集成了开源固体结构求解器Code-Aster)、Salome-CFD(集成了开源流体求解器Code_Saturne)等。
Salome官网提供的该软件的核心功能:
Salome基于OpenCASCADE,其官网提供了Linux版本及Windows版本,同时也提供了源代码版本,用户可以在源代码基础上进行自己的前后处理器。下图为Salome的后处理模块(呃,其实就是Paraview)。
事实上Salome只是一个平台,其将大量的开源模块集成到了一起。
▲ Salome工作界面
开源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工作界面
后处理毫无疑问使用ParaView,就算在窗口操作系统下也有大量的人使用ParaView,其实ParaView的表现还是很不错的,比起那些商用的后处理器来,一点也不逊色。只不过我不怎么喜欢ParaView的界面,觉得太过繁杂了一些。
ParaView也是开源软件,其官方网址:https://www.paraview.org/。官网上提供了预编译版本以及源代码下载。这个不用介绍太多,有兴趣的自己去其官网查阅相关信息。
▲ ParaView渲染后处理