福利推荐 20 个免费的开源的工业设计软件
工业软件支撑了整个工业体系,但市场份额却小得可怜,因此不受重视,在开源领域也不例外。作为面向工业品研发、设计、加工的基础软件,设计软件算是工业软件中发展较为繁荣的一支。
针对面向设计环节的不同,通常会把工业设计软件分为 CAD、CAE、EDA、CAO、CAM、CFD、TCAD、CAPP 等多个类别。广义上讲,这些利用计算机解决工程问题的软件,都可以纳入 CAE(Computer Aided Engineering,计算机辅助工程)的范畴。
本文介绍了 20 个开源的 CAE 软件,涉及 CAD、几何运算、前处理、网格创建、CFD(计算流体动力学)、FEA(有限元分析)、数学及数据分析、后处理等方面。
一、CAD、几何运算、前处理
(一)SALOME
SALOME 根据 LGPL 许可分发,为数值模拟的前处理和后处理提供了一个通用平台,可对各个领域的物理过程进行建模和仿真,以及处理多物理场和参数研究等大型数值模拟。
它包括参数化 CAD 建模器、网格生成和编辑模块、计算管理器以及数据分析和处理工具,还可以为特定应用(例如土木工程、管道或旋转机器中的快速动力学)创建工具。
官方地址:https://www.oschina.net/p/salome
(二)FreeCAD
FreeCAD 是一个通用的参数化 3D CAD 建模器,配备了 FEA 工具、实验 CFD、 CAM/CNC 工作台、机器人模拟模块等,基于 LGPL 许可对外发布。
与大部分 CAD 建模器一样,它具备许多 2D 组件,以便绘制平面形状或创建生产图纸。此外,FreeCAD 大量使用科学计算开源库,其中包括功能强大的 CAD 内核 Open Cascade Technology (OCCT)、兼容 Open Inventor 的 3D 图形开发工具包 Coin3D、知名 UI 框架 Qt,以及脚本语言 Python。此外,FreeCAD 本身也可以被其他程序用作库。
FreeCAD 使用 LGPL 许可,支持在 Linux、Unix、Windows 和 Mac OSX 系统上运行,在所有平台上具有相同的外观和功能。
官方地址:https://www.oschina.net/p/freecad
(三)Blender
Blender 是一款使用 GPL 许可分发的 3D 创作套件。它支持整个 3D 流程——建模、绑定、动画、模拟、渲染、合成和运动跟踪,甚至视频编辑和游戏创建。使用 Blender 的 Python 脚本 API 可以定制应用程序并编写专门的工具。
与其它 3D 建模工具相比,Blender 对内存和驱动的要求更低。它可以在 Linux、macOS 以及 Windows 系统下运行,为给用户提供一致的体验,其界面使用 OpenGL。
官方地址:https://www.oschina.net/p/blender
(四)MeshLab
MeshLab 基于 C++ 网格处理库 VCG 开发,提供了一套用于编辑、清理、修复、检查、渲染、纹理和转换网格数据的工具,用于处理和编辑非结构化的大型 3D 三角网格。
MeshLab 采用 GPL 发布,是一个可移植和可扩展的系统,支持 Windows、macOS 和 Linux 等主流操作系统。
官方地址:https://www.oschina.net/p/meshlab
二、网格创建
(一)cfMesh
cfmesh 网格功能非常强大,覆盖了生成流体网格所有要求,基于 GPL 许可分发。与传统的非结构化网格生成器不同的是,cfMesh 使用由内而外的方法来生成网格。它的优点在于不需要输入高质量的几何形状,且可以容忍较小的间隙、裂缝和突起。 此外,cfMesh 自动化程度很高,可以适应复杂的几何形状,且可以在并行处理器上运行。
需要注意的是,尽管首席开发者都是同一个人,但 cfMesh 与 CF-MESH+ 是两个不同的软件,CF-MESH+ 是 Creative Fields Holding 提供的商业产品。二者之间的主要区别在于边界层生成的质量、网格优化算法和自动单元大小调整。此外,CF-MESH+ 带有一个 GUI,允许快速设置和操作补丁。
官方地址:https://www.oschina.net/p/cfmesh
(二)enGrid
enGrid 是一款专门针对 CFD(计算流体动力学) 的网格生成软件,使用 GPL 对外发布。它使用 Netgen 库生成四面体网格以及棱柱体边界网格,并具有基于 Qt 的 GUI,目标是称为开源 CFD 社区的有用补充。
目前,enGrid 具备 Blender、Gmsh 和 STL 文件的接口,并陆续新增了支持 OpenFOAM、SU2 本地导出的功能。
官方地址:https://www.oschina.net/p/engrid
(三)Gmsh
Gmsh 是一个自动的三维有限元网格生成器,内置 CAD 引擎和后处理器,采用 GPL 对外发布。在网格质量方面,Gmsh 丝毫不亚于商业网格引擎。
Gmsh 围绕四个模块构建:几何、网格、求解器和后处理。模块输入可以使用 UI 界面以交互方式完成,或使用 Gmsh 自己的脚本语言(.geo文件)在 ASCII 文本文件中完成,或者使用 C++、C、Python 或 Julia API。
官方地址:https://www.oschina.net/p/gmsh
(四)Triangle
Triangle 是使用点集 Delaunay 三角剖分技术(Delaunay triangulation technique)构建艺术图像的工具,输入图像可将其转换为由三角形块组成的抽象图像。
尽管 Triangle 是免费提供的,但它的版权归作者所有,未经许可不得出售或包含在商业产品中。
官方地址:https://www.oschina.net/p/triangle
(五)TetGen
TetGen 是一个 Delaunay(三角剖分) 四面体网格生成工具,提供各种功能来生成适用于数值方法(例如有限元或有限体积方法)的高质量和自适应四面体网格。它为三维点集生成 Delaunay 四面体、Voronoi 图和凸包(convex hull),为具有分段线性边界的三维域生成约束 Delaunay 四面体和高质量四面体网格。
TetGen 用 C++ 编写,它本质上是固定精度浮点数的任意精度浮点运算的快速实现,因此可以编译成从命令行调用的独立程序或与其他程序链接的库,支持 Unix、Linux、macOS、Windows 等主流操作系统。
下图分别展示了 TetGen 生成的三维多面体(左)、边界一致的 Delaunay 四面体网格(中)及其对偶 - Voronoi 分区图(右)。
对于一组 3D 点,TetGen 可计算其精确的 Delaunay 四面体化及其对偶 Voronoi 图。下图显示了在立方体中采样的一组 164 个点(左),Delaunay 四面体及其对偶 Voronoi 图(中),Voronoi 面被随机着色以进行可视化,有界 Voronoi 细胞(右),内部 Voronoi 单元格被突出显示。
官方地址:https://www.oschina.net/p/tetgen
(六)NETGEN
NETGEN 是一个三维四面体网格生成器,接受基于构造实体几何法 (CSG) 或边界表示法 (BRep) 的 STL 文件格式的实体模型输入。它与几何内核连接,能够处理 IGES 和 STEP 文件。
NETGEN 一般搭配 NGSolve 库组合使用(相关教程一般会写成 NETGEN/NGSolve),NGSolve 是一个有限元库,包含所有标准元素几何图形的任意阶有限元,可以链接到 Netgen 使用。
NETGEN/NGSolve 包含用于网格优化和分层网格细化的模块,可完成有限元模拟的完整工作流程,包括从几何建模、网格生成、数值模拟到可视化的无缝集成,NETGEN/NGSolve 都基于 LGPL 分发。
Netgen 6.x 支持通过 Python 接口编写脚本,适用于 Unix、Linux、Windows 和 macOS。
官方地址:https://www.oschina.net/p/netgen
三、CFD
(一)OpenFOAM
OpenFOAM 是一个计算流体动力学 (CFD) 软件包。它支持多面体网格,如 CD-adapco 公司推出的 CCM+ 生成的多面体网格,因而可以处理复杂的几何外形,支持大规模并行计算。
OpenFOAM 功能多样,可以模拟汽车空气动力学中的湍流、建筑物中的火灾和灭火(包括燃烧、化学反应、热传递、液体喷雾和薄膜),以及固体动力学和电磁学的任何场景。它包含了各种工具,可用于在复杂几何形状(例如车辆)内和周围进行网格划分,以及数据处理和可视化等。
OpenFOAM 基于 GPL 分发,有多个版本。org 版本是由非盈利组织 The OpenFOAM Foundation 维护的,com 版本由 ESI 公司维护。
官方地址:https://www.oschina.net/p/OpenFOAM
(二)SU2
SU2 是一套用 C++ / Python 编写、用于偏微分方程 (PDE) 的数值求解和 PDE 约束优化的工具集。它的设计考虑了计算流体动力学 (CFD) 和空气动力学形状优化,并且可扩展,因此可以处理其它控制方程组,如流体动力学、弹性动力学、电动力学、化学反应流等。
SU2 由斯坦福大学航空航天系航空航天设计实验室(ADL)和社区成员开发,采用 LGPL 许可发布。
官方地址: https://www.oschina.net/p/su2
四、FEA
(一)Calculix
CalculiX 是一个使用有限元法的分析软件,可以构建、计算和后处理有限元模型。前处理器和后处理器是使用 openGL API 的交互式 3D 工具,支持 Nastran、Abaqus、Ansys、ISAAC 和 OpenFOAM 等软件的求解器。
求解器能够进行线性和非线性计算,可提供静态、动态和热解决方案。因为求解器使用 Abaqus 输入格式,所以也可以使用商业的前处理器。(Abaqus 是由 HKS 开发的商业软件, CalculiX 已经获得 HKS 许可。)
CalculiX 基于GPL 分发,其处理器和求解器可单独使用,并提供外部 CAD 接口,可在 Linux 、IRIX、Unix、Windows 上运行。
官方地址:https://www.oschina.net/p/calculi
(二)Code_Aster
Code_Aster 是基于有限元理论的结构力学和热力耦合计算软件,用于机器、压力容器和土木工程结构的 3D 热分析和机械分析。
除了具备固体力学 FEM 软件的标准功能之外,Code_Aster 还覆盖了多个具体领域:疲劳、损伤、断裂、接触、地质材料、多孔介质、多物理场耦合等。
Code_Aster 由法国电力集团(EDF)历时 30 余年开发,经过海量工业应用验证,对标 Abaqus、Ansys 等主流力学商业软件。
官方地址:https://www.oschina.net/p/code_aster
五、数学及数据分析
(一)Scilab
Scilab 基于 GPL 发布,以矩阵作为主要的数据类型,同时拥有丰富的绘图功能,包含大约 1700 个用于科学和工程计算的数学函数,可用于信号处理、统计分析、图像增强、流体动力学模拟、数值优化和建模、显式和隐式动力系统的模拟以及(如果安装了相应的工具箱)符号操作。
Scilab 还包括一个名为 Xcos 的免费软件包,用于对显式和隐式动态系统进行建模和仿真,包括连续和离散子系统。Xcos 是与 MathWorks 中的 Simulink 等效的开源软件。
Scilab 包含一个源代码转换器,用于协助将代码从 MATLAB 转换为 Scilab。
官方地址:https://www.oschina.net/p/scilab
(二)GNU Octave
GNU Octave 基于 GPL 分发,内置 2D/3D 绘图和可视化工具,与许多 Matlab 脚本兼容,Octave 解释器可以在 GUI 模式下运行,作为控制台,或作为 shell 脚本的一部分调用。
官方地址:https://www.oschina.net/p/octave
(三)OpenTURNS
OpenTURNS 是一个 C++ 和 Python 库,内置专用于处理不确定性数据的模型和算法。该库的主要目标是提供处理工业应用研究中的不确定性所需的所有功能。官方表示,该软件的目标用户是所有希望在迄今为止的确定性研究中引入概率维度的工程师。
官方地址:https://www.oschina.net/p/openturns
六、后处理
(一)ParaView
ParaView 是一个多平台的数据分析和可视化软件。用户可以使用定性和定量技术快速构建可视化来分析数据,支持 3D 交互、编程批处理。
ParaView 最初是为了使用分布式内存计算资源分析超大型数据集而开发的,可部署在 Windows、macOS、Linux、SGI、IBM Blue Gene、Cray 以及各种 Unix 工作站、集群和超级计算机上。在后台,ParaView 使用 Visualization Toolkit(VTK) 作为数据处理和渲染引擎,并拥有 Qt 编写的 UI。
官方地址:https://www.oschina.net/p/paraview
(二)Gnuplot
Gnuplot 是一个命令行驱动的绘图程序,适用于 Linux、macOS、Windows、VMS 等多个系统。源代码受版权保护,但可免费分发(即不必为此付费)。它最初是为了让科学家和学生能够交互式地可视化数学函数和数据而创建的,现在已经发展到支持许多非交互式的用途,如 Web 脚本。它还被 Octave 等第三方应用程序用作绘图引擎。
Gnuplot 大部分采用 GPL 分发,且有字母“Gnu”,但官方表示它与 GNU 项目或 FSF 没有什么关系。
官方地址:https://www.oschina.net/p/gnuplot
(三)VisIt
VisIt 采用 BSD 许可分发,是用于对极其庞大的数据集进行并行、通用后处理的基础架构。目标用例包括数据探索、比较分析、可视化调试、定量分析和图形演示。
它的基本设计是客户端-服务器模型,其中服务器是并行化的。该工具已经实现了许多大型数据集的可视化,包括 2160 亿个数据点的结构化网格、10 亿个粒子模拟,以及具有数亿到数十亿元素的曲线、非结构化和 AMR 网格。
除了能够处理万亿级的数据集,VisIt 也能很好地处理千字节范围内的小型数据集,可运行在 Windows、macOS、Linux 以及 Unix 系统中。
官方地址:https://www.oschina.net/p/visit
实际上,开源的工业设计软件远不止以上这些,留到下次再讲。