OpenFOAM
OpenFOAM(英文 Open Source Field Operation and Manipulation 的缩写,意为开源的场运算和处理软件)是对连续介质力学问题进行数值计算的C++自由软件工具包,其代码遵守GNU通用公共许可证。它可进行数据预处理、后处理和自定义求解器,常用于计算流体力学(CFD)领域。该软件由OpenFOAM基金会维护[2](商标OpenFOAM的拥有者硅谷图形公司(SGI)赞助)。
在命令行窗口中运行的OpenFOAM | |
原作者 | Henry Weller |
---|---|
開發者 | The OpenFOAM Foundation |
首次发布 | 2004-12-10 |
当前版本 |
|
源代码库 | |
编程语言 | C++ |
操作系统 | Unix/Linux |
类型 | 计算流体力学 |
许可协议 | GNU通用公共许可证 |
网站 | www.openfoam.org |
历史
OpenFOAM的早期开发始于1980年代末期的伦敦帝国学院,其目标是为了编写一个相对于当时事实上的标准,FORTRAN,更为强大和灵活的通用模拟计算平台。并且因此选择了拥有高度模块化和面向对象特性的C++作为其编程语言。在2004年OpenFOAM以开源方式发布之前,英国Nabla有限公司曾销售过FOAM,OpenFOAM的前身。[3]2011年8月15日,OpenCFD宣布它被硅谷图形公司(SGI)收购。[4]
OpenFOAM是最早的用C++写成的重要科学计算软件包之一。现已成为使用多面体网格的最主要的通用计算流体力学(CFD)软件.
特色
OpenFOAM的架构
OpenFOAM核心功能的实现是由大量的基础库完成的,其中包括:
利用便捷直观的高级语法和基础库提供的功能完成开发应用。通常应用可以归为两类:
- 求解器:执行连续介质问题的求解计算
- 实用程序:用于准备网格、设置模拟样例、处理结果等
每个应用有其专注的功能:如应用blockMesh用于从用户提供的输入文件生成网格,而另一个应用icoFoam,则用来求解不可压层流的Navier-Stokes方程。
最后,一些第三方软件包被用来提供并行化能力(即OpenMPI)和进行图像后处理(ParaView)。
功能
OpenFOAM的功能含有[15]:
- 基本的计算流体力学求解器
- 不可压流的雷诺平均纳维-斯托克斯方程法(RANS)和大涡流模拟法(LES)求解[16]
- 可压流的RANS和LES求解[17]
- 浮力流动求解器[18]
- 直接数值模拟(DNS) 和 LES
- 多相流体求解器[19]
- 粒子跟踪求解器
- 燃烧问题求解器[20]
- 耦合热传输求解器[21]
- 分子动力学求解器[22]
- [23]
- 电磁学求解器[24]
- 刚体动力学模拟器[25]
除以上列举的标准求解器之外,由于OpenFOAM的语法,建立自定义的求解器也是容易的。
OpenFOAM实用程序被细分为:
- 网格实用程序
- 网格生成: 它们通过输入文件或几何描述文件(如)来自动生成计算用的网格(hex-dominant, snappyHexMesh)
- 网格格式转化:转化其他工具生成的网格到OpenFOAM格式
- 网格处理:执行一些网格操作,如局部优化,区域定义等
- 并行处理工具:提供计算任务的分解、合并和重分发功能来实现并行计算
- 预处理工具:准备模拟样例
- 后处理工具:处理模拟结果,包含到OpenFOAM和ParaView的插件
- 表面处理工具
- 热物理工具
许可证
OpenFOAM是自由软件和开源软件,在GNU通用公共许可证版本3下发布。[26]
优劣
优点
- 用户友好的偏微分方程描述语法
- 有非结构化多面体网格的处理能力
- 自动并行化OpenFOAM高级语言写成的应用
- 现成的涵盖宽领域的应用和模型
- 有由开发者提供的商业支持和培训
- 无许可证花费
缺点
- 缺少集成的图形化用户界面(GUI)(但有独立私有软件可选)
- 开发文档缺乏足够的细节,学习曲线陡峭
- 文档缺乏维护,入门困难
分支和改编
免费软件
- blueCFD 是改编自OpenFlow的运行在 Windows 上的OpenFOAM交叉编译版本。该软件包同时也含有一些有用的额外函数和工具。blueCAPE出品。[27]
- FreeFOAM[28]为了把OpenFOAM从它对系统的依赖中解脱出来,使其安装更为便携和用户友好而建立的分支。其开发紧跟最新的OpenFOAM发布版,不附带额外的功能,使用CMake作为编译系统。
- OpenFlow 是一个OpenFOAM的Windows平台交叉编译的源码补丁。blueCFD中OpenFOAM的部分既是由它而来。Symscape出品[29]
- OpenFOAM-extend[30]由Wikki有限公司维护[31]。该分支有社区贡献的大量内容,并且当中的绝大部分贡献可以装入到OpenFOAM的官方版本中,而只产生最低限度的影响。[32]它的开发与官方版OpenFOAM是并列进行的,对最新版OpenFOAM的合并可能要等到一至两年后。
替代软件
开源软件和自由软件
私有软件
- ANSYS CFX
- ANSYS Fluent
- Pumplinx
- STAR-CCM+
- KIVA (software)
- RELAP5-3D
- PowerFlow
- FOAMpro
参考文献
- . 2023年7月11日 [2023年7月20日].
- The OpenFOAM Foundation homepage
- OpenFOAM Release History
- . [2016-08-23]. (原始内容存档于2012-12-06).
- . [2012-07-17]. (原始内容存档于2012-08-07).
- . [2012-07-17]. (原始内容存档于2014-01-08).
- . [2012-07-17]. (原始内容存档于2012-07-23).
- . [2012-07-17]. (原始内容存档于2012-08-07).
- . [2012-07-17]. (原始内容存档于2012-07-23).
- . [2012-07-17]. (原始内容存档于2012-07-23).
- . [2012-07-17]. (原始内容存档于2012-07-23).
- . [2012-07-17]. (原始内容存档于2012-07-23).
- . [2012-07-17]. (原始内容存档于2012-08-07).
- . [2012-07-17]. (原始内容存档于2012-07-23).
- . [2012-07-17]. (原始内容存档于2012-07-23).
- . [2012-07-17]. (原始内容存档于2012-07-23).
- . [2012-07-17]. (原始内容存档于2012-07-23).
- . [2012-07-17]. (原始内容存档于2012-07-23).
- . [2012-07-17]. (原始内容存档于2012-07-23).
- . [2012-07-17]. (原始内容存档于2012-07-23).
- . [2012-07-17]. (原始内容存档于2012-07-23).
- . [2012-07-17]. (原始内容存档于2012-07-23).
- . [2012-07-17]. (原始内容存档于2012-07-23).
- . [2012-07-17]. (原始内容存档于2012-07-23).
- . [2012-07-17]. (原始内容存档于2012-07-23).
- http://www.openfoam.org/licence.php (页面存档备份,存于) OpenFOAM Licensing Page
- . [2012-07-17]. (原始内容存档于2012-04-25).
- . [2012-07-17]. (原始内容存档于2012-06-17).
- . [2012-07-17]. (原始内容存档于2012-07-30).
- . [2012-07-17]. (原始内容存档于2012-06-17).
- Wikki Ltd (页面存档备份,存于).
- Solvers (页面存档备份,存于), Utilities (页面存档备份,存于), and Other contributions (页面存档备份,存于)
- . [2012-07-17]. (原始内容存档于2012-07-02).
- . [2012-07-17]. (原始内容存档于2012-04-25).
- . [2012-07-17]. (原始内容存档于2012-04-25).
- . [2012-07-17]. (原始内容存档于2012-04-23).
- . [2012-07-17]. (原始内容存档于2012-04-23).
- . [2012-07-17]. (原始内容存档于2016-10-19).
- . [2012-07-17]. (原始内容存档于2012-07-10).
- . [2012-07-17]. (原始内容存档于2019-10-19).
- . [2012-07-17]. (原始内容存档于2016-07-29).
- [depts.washington.edu/clawpack]
外部链接
官方资源
社区资源
- OpenFOAM Forum at CFD Online(页面存档备份,存于)
- OpenFOAM wiki(页面存档备份,存于)
- FOAM CFD web site, by one of the original developers of the code, who is not associated with OpenCFD.
- A Blog about OpenFOAM in Chinese(页面存档备份,存于)
- OpenFOAM中文爱好者之家网站(页面存档备份,存于)
- 入门课程