好久没有关注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+ 也应能工作)进行了测试。详细信息可以参阅官网详细介绍。