好久没有关注OpenFOAM了,昨天偶然发现已经发布12版本了,瞅了一眼发布日志,更新的内容还不少。
OpenFOAM在11版本推出了模块求解器,终于走上了现代软件设计的正途上了。前期版本通过拷贝文件的方式创建新的求解器,实在是太不优雅了,一大推的重复代码。
一直觉得org版本的OpenFOAM对用户来说不友好,每个版本改动都挺大,而且很少能够向下兼容。现在再去和com版本横向比较,感觉就是两套完全不同的代码,这对新接触的用户来说非常不利。不过这并不奇怪,开源代码出现分裂也是很正常的,而且随着时间的推移,碎片化的版本会越来越多。这对于工程应用来说是非常不利的。
下面是OpenFOAM 12版本的一些更新简介(取自官网:https://openfoam.org/release/12/)。
”
OpenFOAM 12
利用模块化求解器(modular solver)和非一致性耦合(non-conformal coupling,NCC)来改进多区域的模拟,其中包括简化网格划分和耦合。在颗粒代码的重写方面也取得了进展,例如颗粒的注入和分布、并行分解、重新分布和负载平衡。新版本添加了一些新的、有用的边界条件,并可以选择在输入值中包含单位,例如 [bar]
,并相应地进行转换。第三方软件包的安装更加简便,Ubuntu 24.04 和 22.04 的 openfoam12
包现在可以使用标准的 paraview
包。
OpenFOAM 12
包括以下亮点:
模块化求解器
:支持其他变量方程中一个变量的源项。多相流
:改进了质量、动量和热传递以及固体相的模型。湍流建模
:简化场域的鲁棒限制和修正了壁面函数。传热
:添加了粘性热模型(viscous heating model),并改进了热力学物性的命名。颗粒跟踪
:通用的的颗粒注入和颗粒分布。网格
:升级了网格生成和多网格区域的耦合。并行运行
:负载均衡、分解和重新分配的高效选项。功能对象
:移至 system/functions
文件,并增加了新的功能对象。模型
:增加了体积和质量源,这些可以被添加到质量连续方程中。边界条件
:添加了新的压力、速度和温度边界条件。案例配置
:参数中可以包含单位,例如 [bar]
。编程
:foamFind
脚本可用于搜索源代码。其他
:更简便的 ParaView
和分解库安装。ISO/IEC 14882:2011
(C++14)
:针对 GCC v5.5+、Clang v16+(v10+ 也应能工作)进行了测试。详细信息可以参阅官网详细介绍。