OpenFOAM

✍ dations ◷ 2025-11-11 14:25:01 #自由软件,计算流体力学



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

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

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

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

对应的OpenFOAM代码是

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

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

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

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

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

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

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

OpenFOAM的功能含有:

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

OpenFOAM实用程序被细分为:

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

相关

  • 三氯氧磷三氯氧磷(分子式:POCl3),也称作磷酰氯,室温下为无色液体。它在潮湿空气中发烟,水解为磷酸及具刺激性的盐酸液滴。工业上由三氯化磷与氧气或五氧化二磷反应制备,主要用作生产磷酸酯
  • 英苏入侵伊朗苏联 英国英苏入侵伊朗是1941年8月25日至9月17日英国和苏联为了确保对伊朗的油田和援苏物资通道安全,联合出兵干涉伊朗的军事行动。入侵的结果是伊朗国王礼萨汗退位,纳粹德国
  • 阿尔索斯任务阿尔索斯任务(英语:Alsos Mission),也作阿尔索斯行动,是在第二次世界大战期间美国军方、科学家、情报人员的合作组织,意在刺探敌方在科学方面的发展。其主要目标是德国核武器开发
  • 济南府济南府,中国古代的府,在今山东省境。北宋政和六年(1116年)升齐州置,治所在历城县(即今山东省济南市)。下领五县:历城县、禹城县、章丘县、长清县、临邑县,辖境约当今山东省济南、长清
  • 婚外情外遇,也称作婚外情、偷食、出轨、第三者插足(此第三者俗称“小三”),是指有婚姻关系的其中一人,与配偶以外的人发生超出友谊的爱情关系(不论是否有性行为)。外遇的定义依不同研究领
  • 温翠温翠
  • 内藤义清内藤义清(1463年-1537年),是日本战国时代的武将。父亲是内藤重清。儿子有清长、忠乡。三女是石川数正的正室。冈崎五人众之一。内藤氏中兴之祖。在宽正4年(1463年)出生。仕于松平
  • 雷金纳德·奥德沃思·戴利雷金纳德·奥德沃思·戴利(1871年3月18日-1957年9月19日)著名加拿大籍美国地质学家。 1896年从哈佛大学获得地质学博士后,赴德国与法国学习研究。1901年回国任加拿大国界委员会(
  • 东经九十度洋脊东经九十度洋脊是印度洋的洋脊,位于北面的安达曼群岛和南面的印度洋东南海岭之间,全长约5,000公里,平均宽度200公里,北部和南部分别在4,320万年和8,180万年形成。坐标:3°S 90°E
  • 东北县东北县(马来语:Daerah Timur Laut),是马来西亚槟城州在槟岛东北岸的一个县。其面积为122.79平方公里,人口于2012年为529,400。该县东与北为马六甲海峡。西与南为西南县,东与威省隔