开源仿真 / CAE 软件调研(第一版)
这是一篇偏「软件工程 / 工具选型」视角的笔记,面向普通仿真工程师和研发人员: 不讨论商业授权、销售策略,只关心——如果不花钱,我能用哪些开源工具把一条仿真工作流(几何 / 网格 / 求解 / 可视化)基本跑起来, 它们各自适合干什么、不太适合干什么。
1. 为什么要关注开源仿真软件?
在「硬件是基建,软件是生产力」这件事上,正版化越来越是共识。但在工程实践里,开源软件 其实已经成为很多团队的「第二条腿」: 既可以作为正式生产力的一部分,也可以作为商业软件的补充、验证和对照组。
从个人和小团队角度看,开源仿真软件有几个很现实的优点:
- (1)成本低。 大部分开源软件本身免费,学习资料和社区问答也是免费的。即便有少量付费支持,相比商业套件的 license 成本还是小很多。
- (2)安全 & 高质量。 核心代码长期在公开仓库里演进,严重 bug 往往会被快速暴露和修复; 很多项目背后是国家实验室 / 大厂 / 行业联盟,质量并不比商业软件差。
- (3)可定制、可集成。 对开发者来说,开源软件最大的价值其实是「可以改」: 你可以按自己工作流做二次开发、写脚本接口、把它作为自研求解器的前后处理工具。
- (4)生命周期相对稳定。 商业软件的生命周期间歇性受到公司战略和财报影响; 很多开源项目只要有实际用户,就会在社区里慢慢迭代,很少「说停就停」。
- (5)适合做标准对照组。 比如 OpenFOAM / SU2 / Code_Saturne 这类开源求解器,已经被大量论文、报告使用; 在做方法验证、对标实验或商软时,用这些开源工具作为一条参考曲线是很自然的选择。
下面的列表,本着「面向仿真工作者」和「无需付费,也能干活」的原则, 粗略选了 15 款和工程仿真相关的开源软件。不是排名,也不算全面,只是我个人视角下一份「可以优先尝试」的清单。
2. 综合平台 / 前后处理
2.1 SALOME:开源多物理仿真平台
SALOME 由 EDF(法国电力集团)、CEA(法国原子能和替代能源委员会)和 Open Cascade 合作开发, 是一个工业级的开源仿真平台,特点是:从几何建模、网格,到后处理,一条链路都能打通。
- 提供几何建模、网格划分、多物理场耦合、可视化等一整套模块。
- 适合做「前处理 + 求解器耦合 + 后处理」的一体化工作流。
- 和 Code_Aster、Code_Saturne 等开源求解器集成较好,在核能、能源等行业应用多。
2.2 FreeCAD:通用 3D CAD + FEA/CFD 工作台
FreeCAD 是一款通用的 3D CAD 建模软件,基于 LGPL 发布。 它内置了 FEA 工作台、实验性的 CFD 模块、CAM/CNC 工具路径、机器人模拟等功能, 本质上是一个可扩展的工程平台。
- 底层使用 Open Cascade(OCCT)、Coin3D、Qt、Python 等成熟开源库。
- 界面相对友好,适合做简单零件建模 + 导出几何给其他求解器用。
- 也可以把 FreeCAD 当作一个「可脚本化的几何内核」,用于自动生成几何 / 网格。
2.3 MeshLab:三角网格处理专家
MeshLab 主要面向三角网格的处理和修复,典型场景是: 从扫描 / 逆向工程 / STL 导入的大规模非结构三角网格。
- 支持网格清理、去噪、孔洞填补、重建、重采样等操作。
- 更偏「计算机图形 / 逆向工程」方向,但对仿真前处理(特别是 STL 清理)也很有用。
2.4 Gmsh:几何 + 网格 + 简单后处理
Gmsh 是一个带前后处理功能的 3D 有限元网格生成器, 设计目标是:提供快速、可参数化、可脚本化的网格工具。
- 四大核心模块:几何、网格、求解、后处理。
- 支持基于脚本的参数化建模(.geo 文件),非常适合批量生成算例。
- 对 FEA/CFD 的简单 post 也够用,是很多自研求解器的默认搭档。
3. CFD / 多物理求解器
3.1 OpenFOAM:最常见的开源 CFD 平台之一
OpenFOAM 几乎是开源 CFD 的代名词。它基于有限体积方法,支持多种网格类型(包括多面体),
自带 snappyHexMesh 这样的网格工具,可以处理复杂几何并支持大规模并行。
- 提供覆盖广泛的物理模型和求解器:单相、多相、燃烧、传热等。
- 高度模块化、可编程,适合科研和二次开发。
- 学习成本不低,但一旦熟悉,能作为一整套 CFD 平台使用。
3.2 SU2:非结构网格 + 形状优化友好
SU2 是一款以航空航天应用起家的非结构网格开源求解器, 原生支持流场 + 形状优化,适用于从低速不可压到高超声速的流动问题。
- 支持静止 / 动网格与自适应网格,适合复杂外形和变形问题。
- 可以扩展到弹性动力学、电磁、化学反应流等其它控制方程。
- 在气动优化、翼型优化领域有很多公开算例和文档。
3.3 Code_Saturne:EDF 自研的通用 CFD 求解器
Code_Saturne 是 EDF 自主开发的一款开源 CFD 软件, 基于有限体积方法,支持 2D / 3D、稳态 / 非稳态、层流 / 湍流、可压 / 不可压、等温 / 非等温等多种场景。
- 在大气模拟、燃烧、颗粒追踪、流体机械等工业应用上经验丰富。
- 和 SALOME / Code_Aster 等法国系开源软件集成度较高。
3.4 FDS:火灾动力学模拟工具
FDS(Fire Dynamics Simulator) 由美国 NIST 开发, 基于 CFD 的低马赫数 Navier–Stokes 方程组,专注于火灾场景中的 烟气流动、热传递和能量驱动流动 的数值模拟。
- 适合建筑火灾、安全评估、烟气扩散等方向。
- 后处理通常配合 Smokeview 使用。
3.5 OpenRadioss:显式动力学 / 碰撞方向的开源尝试
OpenRadioss 是 Radioss 求解器的开源版本,由 Altair 推出, 聚焦于显式动力学、碰撞、安全性分析等场景。
- 擅长汽车碰撞、轻质材料和复合材料、乘员安全等问题。
- 与 Altair 自家前后处理工具(如 HyperMesh / HyperView)配合更好。
- 开源版本为研究者提供了在代码层面做方法实验的可能。
4. 网格生成与几何处理
4.1 cfMesh:面向 CFD 的自动化网格生成
cfMesh 是一个基于 GPL 的网格生成器,重点面向 CFD 应用。 与传统「从几何出发」的非结构网格生成器不同,它采用由内而外的方法来生成网格, 对几何缺陷的容忍度较高。
- 不强依赖高质量 CAD,能容忍小间隙、裂缝和折角。
- 自动化程度高,适合复杂几何 + 批量网格生成。
- 可在并行环境下运行,适合大规模网格构建。
4.2 enGrid:面向 CFD 的开源网格生成器
enGrid 是一款针对 CFD 的开源网格生成软件,使用 GPL 许可。 它基于 Netgen 生成四面体网格和棱柱边界层网格,界面基于 Qt。
- 支持 Blender、Gmsh、STL 等格式的接口。
- 已逐步增加对 OpenFOAM、SU2 等格式的支持。
- 适合作为开源 CFD 工具链中的一个备选网格器。
4.3 TetGen:Delaunay 四面体网格生成
TetGen 是一个专注于 Delaunay 四面体网格的生成工具, 适用于有限元 / 有限体积等数值方法需要的高质量四面体网格。
- 能够为三维点集生成 Delaunay 四面体、Voronoi 图和凸包。
- 支持带分段线性边界的三维域,生成约束 Delaunay 网格。
- 用 C++ 编写,可作为命令行工具,也可作为库嵌入到其他代码中。
5. 结构 / 多物理求解器
5.1 CalculiX:开源 FEA + Abaqus 输入兼容
CalculiX 是一套结构有限元软件,包含前处理(交互式 OpenGL 界面)和求解器。 求解器支持线性 / 非线性、静力学 / 动力学、热分析等多种工况。
- 一个重要特点是:求解器基本兼容 Abaqus 输入格式,可以借用商业前处理器。
- 适合做结构分析、有限元教学、低成本验证等。
5.2 Code_Aster:EDF 的多物理有限元平台
Code_Aster 是 EDF 开发的一款通用有限元求解器, 能够处理热分析、线性 / 非线性静力学和动力学、压力容器和土木结构等问题。
- 除经典固体力学功能外,还支持疲劳、损伤、断裂、接触、岩土、多孔介质、多物理耦合等。
- 常与 SALOME 组合使用,构成完整的开源 CAE 平台。
6. 绘图与数据可视化
6.1 Gnuplot:命令行绘图“小刀”
Gnuplot 是一个命令行驱动的交互式绘图工具, 可用于生成二维 / 三维曲线和表面图,并支持多种输出格式。
- 既可交互使用,也可以批处理(脚本方式)生成图像。
- 适合作为仿真后处理中的「轻量级绘图后端」,配合脚本一键生成图表。
7. 小结:怎么用这份清单?
这份清单不是「非要替代商业软件」的意思,而是:
- 给自己和团队多一个选项:很多教学、预研和内部验证工作,其实完全可以用开源工具完成。
- 在做自研求解器 / 平台时,有一套可复用的前后处理和工作流组件。
- 在与外部合作 / 论文对比时,比较容易找到对标的开源 baseline。
后续如果我在实际工作中深度使用了其中某几款(比如 OpenFOAM / SU2 / Code_Saturne / CalculiX 等), 会另外写更细的使用笔记或踩坑记录,挂在本页或者 技术笔记 下面。