OpenFOAM
在命令行窗口中运行的OpenFOAM
原作者Henry Weller
開發者The OpenFOAM Foundation
首次发布2004-12-10
当前版本
  • 11 (2023年7月11日;穩定版本)[1]
編輯維基數據鏈接
源代码库 編輯維基數據鏈接
编程语言C++
操作系统Unix/Linux
类型计算流体力学
许可协议GNU通用公共许可证
网站www.openfoam.org

OpenFOAM(英文 Open Source Field Operation and Manipulation 的缩写,意为开源的场运算和处理软件)是对连续介质力学问题进行数值计算C++自由软件工具包,其代码遵守GNU通用公共许可证。它可进行数据预处理、后处理和自定义求解器,常用于计算流体力学(CFD)领域。该软件由OpenFOAM基金会维护[2](商标OpenFOAM的拥有者硅谷图形公司(SGI)赞助)。

历史

OpenFOAM的早期开发始于1980年代末期的伦敦帝国学院,其目标是为了编写一个相对于当时事实上的标准,FORTRAN,更为强大和灵活的通用模拟计算平台。并且因此选择了拥有高度模块化面向对象特性的C++作为其编程语言。在2004年OpenFOAM以开源方式发布之前,英国Nabla有限公司曾销售过FOAM,OpenFOAM的前身。[3]2011年8月15日,OpenCFD宣布它被硅谷图形公司(SGI)收购。[4]

OpenFOAM是最早的用C++写成的重要科学计算软件包之一[來源請求]。现已成为使用多面体网格的最主要的通用计算流体力学(CFD)软件.

特色

语法

OpenFOAM一个非常有特色的地方是它描述张量偏微分方程的语法与被求解的方程本身非常相似,事实上便捷地在程序中表达传统的数学记号正是其语法设计的目标。例如方程[5]

对应的OpenFOAM代码是

solve
(
     fvm::ddt(rho,U)
   + fvm::div(phi,U)
   - fvm::laplacian(mu,U)
     ==
   - fvc::grad(p)
);

得益于面向对象的程序设计运算符重载,使用者可以相对容易地建立自己的求解器。然而,大量模板元编程的运用以及相应开发文档的缺乏,使得越是深入库底层的定制化越是困难和充满挑战。

可扩展性

由于使用了工厂方法基类作为接口,OpenFOAM具有很好的可扩展性。使用者在建立定制化的物体或对象(例如边界条件或湍流模型)时,无需修改或是重新编译OpenFOAM软件包,便可在已有的求解器上工作。OpenFOAM称之为运行时决策(run-time selection)[6]

OpenFOAM的架构

OpenFOAM核心功能的实现是由大量的基础库完成的,其中包括:

利用便捷直观的高级语法和基础库提供的功能完成开发应用。通常应用可以归为两类:

每个应用有其专注的功能:如应用blockMesh用于从用户提供的输入文件生成网格,而另一个应用icoFoam,则用来求解不可压层流Navier-Stokes方程

最后,一些第三方软件包被用来提供并行化能力(即OpenMPI)和进行图像后处理(ParaView)。

功能

OpenFOAM的功能含有[15]

甲烷在空气中燃烧的模拟。甲烷从底端喷出,同时被点燃。图形界面是ParaView。图中底色表示温度,箭头表示气流速度,箭头的颜色表示局部的氧气含量。

除以上列举的标准求解器之外,由于OpenFOAM的语法,建立自定义的求解器也是容易的。

OpenFOAM实用程序被细分为:

许可证

OpenFOAM是自由软件和开源软件,在GNU通用公共许可证版本3下发布。[26]

优劣

优点

缺点

分支和改编

免费软件

付费软件

替代软件

开源软件和自由软件

私有软件

参考文献

  1. ^ OpenFOAM 11 Released 11th July 2023. 2023年7月11日 [2023年7月20日]. 
  2. ^ The OpenFOAM Foundation homepage
  3. ^ OpenFOAM Release History
  4. ^ 存档副本. [2016-08-23]. (原始内容存档于2012-12-06). 
  5. ^ Creating solvers in OpenFOAM. [2012-07-17]. (原始内容存档于2012-08-07). 
  6. ^ OpenFOAM's run-time selection mechanism explained. [2012-07-17]. (原始内容存档于2014-01-08). 
  7. ^ Linear system solvers in OpenFOAM. [2012-07-17]. (原始内容存档于2012-07-23). 
  8. ^ Ordinary differential equation solvers in OpenFOAM. [2012-07-17]. (原始内容存档于2012-08-07). 
  9. ^ Dynamic mesh in OpenFOAM. [2012-07-17]. (原始内容存档于2012-07-23). 
  10. ^ Rheological models in OpenFOAM. [2012-07-17]. (原始内容存档于2012-07-23). 
  11. ^ Thermophysical models in OpenFOAM. [2012-07-17]. (原始内容存档于2012-07-23). 
  12. ^ Turbulence models in OpenFOAM. [2012-07-17]. (原始内容存档于2012-07-23). 
  13. ^ Chemical reactions and kinetics models in OpenFOAM. [2012-07-17]. (原始内容存档于2012-08-07). 
  14. ^ Lagrangian particle tracking in OpenFOAM. [2012-07-17]. (原始内容存档于2012-07-23). 
  15. ^ OpenFOAM features. [2012-07-17]. (原始内容存档于2012-07-23). 
  16. ^ OpenFOAM incompressible flow solvers. [2012-07-17]. (原始内容存档于2012-07-23). 
  17. ^ OpenFOAM Compressible flow solvers. [2012-07-17]. (原始内容存档于2012-07-23). 
  18. ^ OpenFOAM buoyancy-driven flow solvers. [2012-07-17]. (原始内容存档于2012-07-23). 
  19. ^ Multiphase flow solvers. [2012-07-17]. (原始内容存档于2012-07-23). 
  20. ^ OpenFOAM solvers for combustion. [2012-07-17]. (原始内容存档于2012-07-23). 
  21. ^ OpenFOAM solvers for conjugate heat transfer. [2012-07-17]. (原始内容存档于2012-07-23). 
  22. ^ OpenFOAM molecular dynamics solvers. [2012-07-17]. (原始内容存档于2012-07-23). 
  23. ^ OpenFOAM Direct Simulation Monte Carlo solvers. [2012-07-17]. (原始内容存档于2012-07-23). 
  24. ^ OpenFOAM Electromagnetics solvers. [2012-07-17]. (原始内容存档于2012-07-23). 
  25. ^ OpenFOAM solid dynamics solvers. [2012-07-17]. (原始内容存档于2012-07-23). 
  26. ^ http://www.openfoam.org/licence.php页面存档备份,存于互联网档案馆) OpenFOAM Licensing Page
  27. ^ blueCAPE's homepage. [2012-07-17]. (原始内容存档于2012-04-25). 
  28. ^ FreeFOAM Home Page. [2012-07-17]. (原始内容存档于2012-06-17). 
  29. ^ OpenFlow source code patch. [2012-07-17]. (原始内容存档于2012-07-30). 
  30. ^ OpenFOAM-extend Project Home Page. [2012-07-17]. (原始内容存档于2012-06-17). 
  31. ^ Wikki Ltd页面存档备份,存于互联网档案馆).
  32. ^ Solvers页面存档备份,存于互联网档案馆), Utilities页面存档备份,存于互联网档案馆), and Other contributions页面存档备份,存于互联网档案馆
  33. ^ Caedium RANS Flow add-on. [2012-07-17]. (原始内容存档于2012-07-02). 
  34. ^ DHCAE Tools homepage. [2012-07-17]. (原始内容存档于2012-04-25). 
  35. ^ ICON FOAMpro Process. [2012-07-17]. (原始内容存档于2012-04-25). 
  36. ^ ICON VWG SAE paper. [2012-07-17]. (原始内容存档于2012-04-23). 
  37. ^ ICON FORD SAE paper. [2012-07-17]. (原始内容存档于2012-04-23). 
  38. ^ SU2 homepage. [2012-07-17]. (原始内容存档于2016-10-19). 
  39. ^ FreeCFD homepage. [2012-07-17]. (原始内容存档于2012-07-10). 
  40. ^ Gerris homepage. [2012-07-17]. (原始内容存档于2019-10-19). 
  41. ^ OpenFVM homepage. [2012-07-17]. (原始内容存档于2016-07-29). 
  42. ^ [depts.washington.edu/clawpack]

外部链接

官方资源

社区资源