OpenFOAM自2004年12月10日开源以来,至今已经经历了非常多的版本。对于一个代码库来说,了解其版本更新历史,对于了解当前版本的程序结构是有帮助的。本系列文档取自Openfoam.org网站(网址:https://openfoam.org/download/history/),主要涵盖了从OpenFOAM 1.0到OpenFOAM 12的各版本更新内容。
发布时间:2004年12月10日
”
FOAM软件曾作为商业授权产品存在,于2004年12月10日转型为开源软件,并遵循GNU General Public Licence授权协议。为体现其全新身份,软件更名为OpenFOAM,同时FOAM的原有授权许可即刻废止。
选择将软件完全开源,旨在满足计算流体力学(CFD)领域研究、开发及咨询用户的需求。用户可长期免费使 用这一本质上的CFD编程工具箱,从而大幅获益。此前发布的旧版产品始终开放约70%的源代码,已被全球30多个国家的多家大型商业工程公司、咨询机构及约90所学术机构广泛采用。作为完全开源产品,OpenFOAM的用户群体已显著扩大。
发布时间:2005年1月12日
”
开源版OpenFOAM发布一个月后,新版本随即推出,旨在解决讨论站点上反馈的主要问题,尤其是与代码编译相关的问题。
开源版的反响远超预期,讨论组的流量在短短一个月内激增十倍。期望该讨论组未来能持续为用户和开发者提供自主支持服务。然而,需要OpenFOAM定制化支持的用户仍可直接联系开发者团队。
发布时间:2005年3月11日
”
OpenFOAM 1.1版本是该软件在GPL协议下发布三个月后的首次重大升级。
此次升级最重要的进展是对处理对象输入输出和数据查询的基础数据库进行了全面重构。采用分层结构实现单个数据库包含多个区域的功能,为开发更快、更可靠的完全耦合求解器奠定了基础,例如在共轭传热和流固耦合等领域。
尽管需要对顶层代码进行少量修改,但升级时特别注意确保新应用程序在运行旧案例时的向后兼容性。更多细节请查阅OpenFOAM发布中的ReleaseNotes-1.1
文件。
1.1版本新增了用于变密度、瞬态湍流换热模拟的rhoTurbFoam
求解器。网格生成方面新增多项功能:开发netgenNeutralToFoam
工具将netgen Neutral格式的网格(包含边界信息)转换为OpenFOAM格式;提供modifyMesh
工具对单个网格单元进行批量修改;优化网格细分的单元分割算法;扩展八叉树功能,新增盒内搜索和线段最近点搜索功能。启动脚本也得到显著改进,使从源代码构建二进制文件更加便捷。
发布时间:2005年8月22日
”
OpenFOAM 1.2版是开源CFD工具箱OpenFOAM的最新升级版本。
该版本拓宽了多相流工具的应用范围,新增以下求解器:
twoPhaseEulerFoam
:通用欧拉-欧拉两相求解器,包含颗粒与气泡/液滴相互作用项及模型;twoLiquidMixingFoam
:interFoam
求解器的变体,允许两种流体混合而非维持界面,采用菲克定律扩散模型描述流体间的扩散。对现有的VOF界面追踪求解器(interFoam
、lesInterFoam
和rasInterFoam
)进行了改进。新增两个求解器:
rhoSimpleFoam
:适用于低马赫数可压缩(变密度)流动并包含换热效应;rhopSonicFoam
:用于无粘可压缩流动。NVD/TVD限制离散格式经过全面重构,提升了代码复用性,同时增强了新格式开发的灵活性与简洁性。移除了部分旧格式(如MinMod、Gamma2),取而代之的是更优的格式,尤其是采用TVD限制形式的中心差分格式——limitedLinear。此外,新增了多种格式的矢量场(V)版本,其中limitedLinearV在收敛性与精度方面表现尤为出色。
FoamX预处理程序历经全面重构,使得用户能轻松编写自定义代码配置。其语法设计大幅优化,尤其在边界条件设定上更显便捷。
新增多项实用工具,涵盖网格/场数据变换、旋转及场数据初始化等操作功能。众多现有工具的功能亦得到拓展,尤其在网格转换工具方面表现尤为显著。
发布时间:2006年3月29日
”
OpenCFD宣布推出开源CFD工具包OpenFOAM的1.3版本。[注:自2011年8月所有权移交后,OpenFOAM软件现由OpenFOAM Foundation负责发布]。此版本涵盖多项优化,旨在增强OpenFOAM在大规模工程CFD应用中的效能与稳定性,主要内容包括:
并行计算改进
通过以下方式显著优化了OpenFOAM的并行性能:
速度提升
通过精细的代码优化,实现了计算速度和内存存储效率的显著提升。
数值方法优化
新增多种离散格式,能够在不良网格(如四面体网格)上获得更高精度和更好稳定性。
单精度选项
OpenFOAM可将所有浮点数从双精度切换为单精度以降低内存需求,如适用于大型稳态外部空气动力学计算(F1)。
OpenMPI
支持并随附OpenMPI(尽管默认版本仍使用lam-MPI进行编译发布)。
开发工具
新增代码在终止时自动进行堆栈追踪;可选启用动态内存分配初始化,以捕获未初始化的浮点变量使用;处理器标记错误信息,便于调试。
应用开发
求解器的开发重点涵盖低速与高速空气动力学、热传导以及浮力驱动流的模拟。同时,新增了大量实用工具,特别是在网格转换与操作、以及后处理方面进行了功能增强。
网格处理
对网格结构进行重大重组与开发,以提升网格生成能力、支持拓扑变化及滑动界面等功能。
可切换基本单位系统
物理常数不再以硬编码形式存在,改为通过文件读取,从而支持使用非默认(国际单位制)的其他基本单位系统。
模型变更
针对湍流模型的壁面函数部分进行了若干修改。
库重构
将有限体积法从主库中分离,以便更轻松地支持其他离散化技术;重新调整库结构以消除循环依赖关系。
编译器
发布版本采用GCC 4.1编译,该版本具有更优的代码优化能力、更好的C++标准兼容性以及改进的错误提示功能;同时支持Intel C++ 9.0编译器。
发布时间:2007年4月11日
”
OpenCFD宣布发布开源CFD工具箱OpenFOAM 1.4版本。[注:自2011年8月所有权移交后,OpenFOAM Foundation现负责发布该软件]。1.4版本包含多项改进,旨在提升OpenFOAM在大规模工程CFD应用中的效率与鲁棒性,主要包括:
多相流
采用新型多维通用限制显式求解器(MULES),显著提升了两相界面追踪求解器的鲁棒性和计算效率。
空化
新增可压缩两相流动(含空化现象)求解器。
多孔介质
在压力-速度求解器中实现了多种模型,包括幂律模型、惯性模型和粘性模型,可通过显式或隐式方式实现,并提供了应用示例。
多重参考系(MRF)
为所有压力-速度求解器提供MRF支持,并包含示例求解器。
湍流模拟
针对高雷诺数外部与内部流动,新增k-omega SST湍流模型。
线性求解器
新增通用线性求解器,包括几何代数多重网格(GAMG)方法,以及可在运行时选择的预处理方法,便于用户根据具体案例调整求解器以获得最佳性能。
发布时间:2007年8月3日
”
OpenCFD宣布推出OpenFOAM开源 CFD 工具箱1.4.1版本。[注:自2011年8月所有权转让后,OpenFOAM Foundation现负责发布该软件]。此版本主要基于1.4版进行错误修复,同时包含以下重要功能更新:
并行运算
默认 MPI 实现由LAM-7.1.2更换为OpenMPI-1.2.3,但仍支持LAM及其他 MPI 实现方案。
网格/数据转换
新增fluent3DMeshToFoam
转换器,可将 Fluent 格式的三维网格转换为OpenFOAM格式,完整支持边界条件、分区等功能;新工具foamFormatConvert
能将案例相关的所有OpenFOAM网格和场文件转换为controlDict
指定格式,例如实现二进制与ASCII格式互转。
动网格
推出新求解器turbDyMFoam
,用于牛顿流体不可压缩湍流模拟,集成 PISO/SIMPLE/PIMPLE 压力-速度求解算法并支持动网格功能;改良icoDynFoam
求解器,同样配备上述算法组用于牛顿流体不可压缩层流动网格模拟;扩展动网格求解器功能,除原有速度求解外新增周期性运动更具优势的位移求解选项。
离散格式
新增filteredLinear2
格式,可消除具有“交错”特征的高频模态。
GAMG求解器
改进非对称矩阵处理能力;非对称矩阵平滑器新增支持DILU
和DILUGaussSeidel
;完全替代旧版AMG求解器(不再支持);最粗矩阵的默认求解器由直接求解改为迭代求解,通过可选参数directSolveCoarsest
仍可选择直接求解。
湍流模型
实现k-omega SST湍流模型,适用于高雷诺数外部可压缩流动及内部可压缩流动(尚未完成全面测试)。
其他改进
优化并行编译功能,增强对Itanium2处理器的适配优化。
发布时间:2008年7月14日
”
OpenCFD很高兴宣布推出开源CFD工具箱OpenFOAM的全新重大版本1.5。[注:自2011年8月所有权转移后。1.5版本包含以下更新:
应用模块
新增大量多相流与空化、浮力流与传热、高速流动及分子动力学领域的示范应用,同时配套发布一系列新型算例。
自动网格生成器
推出新型网格划分工具,可通过表面几何模型自动生成六面体切割网格。该工具具备插入边界层单元、灵活网格加密、鲁棒性表面处理功能,并支持负载均衡的并行运算。
公用功能
开发了网格拉伸、网格分割、耦合patch处理、网格转换、多粒子云处理、案例初始化及后处理等公用功能。
库文件
模型库新增多项功能,包括辐射模拟、旋转参考系、拉格朗日粒子追踪、分子动力学以及用于灵活网格缩放的运动网格求解器。
通用功能
优化了OpenFOAM案例的设置、运行及后处理流程,新增命令行执行与参数功能、字典指令与宏替换功能,并改进了在多处理器上的并行扩展性能。