OpenFOAM 13发布 作者优秀 优秀教师/意见领袖/博士学历/特邀专家 平台推荐 内容稀缺 OpenFOAM基金会宣布推出由CFD Direct开发的OpenFOAM 13版。该版本主要更新包括:重构后的网格区域可动态更新,且更易用、鲁棒性更强(取代原有的topoSet);采用基于场的拉格朗日方法,新代码已完成65%,灵活性、扩展性和效率较现有版本均有提升;改进MULES算法以确保有界性并加速求解过程(如多相流场景);重构传质模型;通过ParaView支持分解case的可视化优化,新增foamVTKSeries动画功能并增强foamMonitor;针对多区域模拟、case配置、网格生成、功能对象、多相流及燃烧等领域进行了多项改进与功能扩充。
OpenFOAM 13包含以下重要更新内容:
模块求解器 :包含可关闭的flow、thermophysics及models开关选项。多相流 :采用multiphaseEuler求解器大幅加速多相流模拟。运输/热力学 :为multiphaseEuler求解器重写质量传输模型。颗粒 :基于场的新型拉格朗日模型完成度达65%,具备更高灵活性、可扩展性和效率。网格区域 :提供更稳定、实用、灵活且功能完善的替代方案。多区域模拟 :改进非共节点连接(NCC)、网格缝合与映射技术。功能对象 :优化scalarTransport功能,新增power、反应速率及cutLayerAverage功能。模型 :新增propellerDisk模型并改进fvFieldSource功能。可视化 :ParaView支持读取分解的case,foamVTKSeries支持动画生成。案例 :新增单相流、多相流、不可压缩与可压缩流动的示例。其它 :foamNewApp脚本可生成非CFD应用的初始代码框架。ISO/IEC 14882:2011 C++14:已测试支持GCC v5.5+及Clang v16+(v10+版本应该也兼容)。 OpenFOAM 13 针对以下平台提供封装版本:
Ubuntu Linux :适用于Ubuntu 22.04、24.04和25.04的打包安装;Windows :通过Windows Subsystem for Linux 安装,使用Ubuntu包;macOS :通过Canonical Multipass 安装,使用Ubuntu包。模块求解器 General:所有求解器模块现在均配备flow 、thermophysics 和models 开关,可分别禁用流动方程、热物理模型及附加模型的求解。 Combustion:在XiFluid 求解器模块中,可通过combustionProperties 文件选择Xi模型及其子模型。 MULES General:MULES 限幅器现在保证有界性,不受迭代器收敛性影响。MULES 控制参数现在通过一个更简化的子字典指定,关键词更为简洁。globalBounds 开关允许用户通过全局边界限制求解变量,而非依赖相邻单元格值进行局部限制。 Semi-implicit:半隐式MULES 迭代的收敛性可通过新的容差控制参数调节,无需指定固定迭代次数。 Multiphase:在流体体积求解器中,子循环次数现在可设为库朗数的函数。multiphaseEuler 求解器中可选的对相分数计算进行截断处理,可解决长时间模拟中因舍入误差导致的求解漂移问题。若相分数边界条件可指定但非绝对固定,则允许在边界处限制相通量,以实现与inletOutlet 条件兼容的限幅。 多相流 求解器 :在multiphaseEuler 求解器中,相压力通量从上一迭代缓存,避免子循环和校正循环期间重新计算,同时保持与压力方程的更好一致性。为VoF求解器开发的相分数求解算法现已扩展至multiphaseEuler 求解器,以在高库朗数条件下提供更快的求解速度。
动量传递 :在multiphaseEuler 求解器中,从低相分数区域移除压力梯度与表面张力,仅保留拖曳力和浮力。因此当相分数趋近于0时,重质相因重力下沉,轻质相因重力上升。
漂移通量 :新增packingDispersionModels 用于工业分离、污水污泥及矿浆处理。新增HerschelBulkley 黏度模型。
颗粒相 :在multiphaseEuler 求解器中引入颗粒相分数的新算法。
界面捕捉 :VoF教程已更新,在fvSolution 文件的相分数求解控制中使用MULES 子字典。可压缩VoF求解器新增参考压力pRef 选项,与multiphaseEuler 求解器类似。
颗粒群平衡 :颗粒群平衡方法中,可通过singleSizeGroup 或distributionSizeGroup 选项在边界或内部场指定尺寸组分数,二者均实现为边界条件和源项。populationBalanceSetSizeDistribution 函数通过用指定分布的积分值覆盖尺寸组分数场中的值,设置群体平衡的尺寸分布。
输运/热力学 传质 :multiphaseEuler 求解器中的相变过程现已重构为一组fvModels 模型,涵盖传热、蒸发、冷凝、溶解、空化、沸腾、均相成核以及反应驱动的传质过程。在multiphaseEuler 求解器的混合力模型中,移除了对作用力正负符号(+/-)的通用化处理以及固定通量边界的处理逻辑,因为这些特性仅适用于特定模型。新增的adjustTimeStepToNucleation 函数对象可根据液滴在multiphaseEuler 求解器中成核的时间尺度(例如冷凝或相分离过程)控制时间步长。质量 :新型二元扩散系数(binaryDiffusionCoefficient )采用温度对数的多项式函数表达。热力学 :incompressiblePerfectGas 状态方程现已与perfectGas 保持热力学一致性,适用于压力变化微小但可能受非预期压力振荡干扰的工况。Interface :devTau /Sigma 函数返回表面牵引力(单位面积力),以确保CFD计算与后续数据处理(如力、功率等分析)的一致性。燃烧 点火 :新增constantIgnition fvModel 用于XiFluid ,替代原有一次性代码。针对XiFluid 的一维、二维及三维仿真,新增多种点火fvModels 。multiCycleConstantbXiIgnition :面向XiFluid 求解器的多循环仿真(含废气再循环EGR建模)开发的新型点火模型。针对Weller b-Xi燃烧模型新增bXiIgnited 点燃模型。Flame speed:层流火焰速度模型实现灵活配置控制,全面重构层流火焰速度建模体系。 火焰皱折 :XiFluid 求解器中新增均衡帧皱褶模型。针对早期火焰核生长开发新型帧皱褶修正模型。为Weller b-Xi燃烧模型添加简单的一维火焰传播示例。Weller b-Xi燃烧模型的帧皱褶剖面结构采用新型建模架构。发动机仿真 :新增engine2Valve2D 示例案例,提供简化的二维类发动机仿真,包含运动耦合传热、滑动界面与网格映射、进排气阀、燃油喷射与火花点火,采用支持废气再循环的Weller b-Xi燃烧模型。颗粒 基于场的拉格朗日方法 :新增基于场量的Lagrangian 库,该库完全开发后将取代现有的基于颗粒的lagrangian 库;新库以场量而非颗粒形式存储数据,具有更高的灵活性、可扩展性和效率,操作更便捷,且与OpenFOAM其他模块保持更好的一致性。跟踪 :引入抛物线追踪功能,以支持二阶Lagrangian模型的构建。反应 :对于反应性多相颗粒体系,模拟结果不再受singleMixtureFraction 模型系数中相序指定顺序的影响。分布 :distribution 函数现可从早期状态重启,多次生成相同的样本序列,从而避免样本重新随机化对迭代序列收敛性的干扰。新增multiFixedValue 分布模型可接受多个赋值,每个值对应特定概率。数据处理 :cloudSurfaceDistribution 函数对象生成通过faceZone 、faceSet 或边界面颗粒值分布的曲线图。网格 常规 :网格生成工具(如 snappyHexMesh )现在默认覆盖现有网格文件;**-noOverwrite** 选项改为复 制旧版默认行为,即将 polyMesh 目录写入时间目录。snappyHexMeshConfig :用于配置 snappyHexMesh 的工具新增以下选项: -closedDomain 、 -minDimCells 和 -regions ; -noBackground 可阻止生成blockMeshDict 文件; -insidePoints ;以及 -rm 用于删除 snappyHexMeshConfig 生成的网格配置文件。简化了可选参数的指定方式,无需使用过多括号。snappyHexMesh :用于snappyHexMesh 及其他工具的几何表面指定语法已简化:移除无关的searchable 前缀,例如searchableBox 现改为box ;triSurface (而非triSurfaceMesh )现用于指定表面几何文件(如OBJ或STL格式)。重写了添加分层时的区域保留功能。extrudeMesh :新增path 拉伸模型。统一了输入语法。转换 :通过部分面重新编号优化了fluent3DMeshToFoam 网格转换器。其他 :mergeMeshes 现在可合并来自constant/meshes 子目录的网格。mapFields 和mapFieldsPar 工具现支持非共形耦合(NCC)接口的网格。运动 :新增displacementLayeredMotionSolver 可在对立面片间移动网格层。优化了网格运动、细化与分布以及二阶时间方案的互操作性。网格区域 概述 :新开发的动态区域生成系统提供可配置的zoneGenerator ,可生成包含一个或多个pointZone 、cellZone 和/或faceZone 的zoneSet (区域集 合)。该系统包含多种zoneGenerators ,用于创建并控制动态区域。针对faceZone ,方向标识flipMap 现为可选功能,但始终可通过flipMap 区域生成器添加。createZones :该功能作为topoSet 的简化替代方案,可通过读取createZonesDict 或zoneGenerator 文件创建细胞区域,操作更高效灵活。refineMesh :功能重构后简化操作流程,支持在单次应用执行中细化多区域;新增hexRef8 细化选项,适用于snappyHexMesh 、动态细化等场景,使独立工具refineHexMesh 不再必要。subsetMesh :重构后支持通过cellZone (通常由应用内生成,配置于subsetMeshDict )进行子集划分。createPatch :现保留网格的补丁顺序,可直接通过createPatchDict 文件配置生成基于面区域的补丁,配置文件采用更简化的字典格式。setFields :简化文件输入流程,可直接使用setFieldsDict 文件中配置的区域。刚体运动 :现可包含随刚体移动的pointZones 。多区域模拟 Mapping :多区域案例现在可通过在 meshes 子字典中包含映射时使用的网格集 合,实现网格到网格的映射。Meshing :对于多区域模拟,可以使用 -region 选项单独生成和操作各个网格。Non-conformal coupling :非共形耦合(NCC)接口新增 moveUpdate 参数,用于控制是否需要更新相交/映射关系,选项包括 never (适用于静态网格)、always (移动网格)和detect (有时移动有时静止)。网格缝合功能现在可紧密连接多个NCC接口。修复了非共形映射壁面面片在域分解时的排序问题。用户可间接控制非共形耦合接口的哪些面片成为owner 和neighbour ;owner面片会投影到neighbour面片上,因此owner通常对应较粗的网格。Mesh stitching :提升了stitchMesh 的鲁棒性。函数对象 常规 :**#includeFunc** 指令现已支持参数中的宏展开功能。
标量传输 :优化了scalarTransport 和phaseScalarTransport 功能,实现扩散率缓存以便在其他场景复用。scalarTransport 函数对象现采用时间步长收敛后的通量场求解传输方程,phaseScalarTransport 函数对象亦同步升级。
场计算 :新增power 函数对象,用于计算多种功率场。
反应速率 :反应速率函数对象新增写入反应速率场选项。
图表处理 :cutLayerAverage 函数对象可生成沿指定方向垂直平面或给定距离场等值线进行体积平均的单元值图表。
其他 :群体平衡函数对象现兼容 HZDR 开发的 foamPostProcess 。
数据输出 :新增Function1s 类型包括:沿x轴平移函数的shift 、按指定周期/频率重复函数的repeat ,以及将函数积分归一化(或二次缩放)的normalise 。Function1 支持从OpenFOAM格式表格文件中选取特定数据列。
模型 Fluid sources :fvFieldSource 现在可对整个体积场进行操作,而非仅限于体积场中的局部区域。Momentum :新增的rigidBodyPropellerDisk fvModel 提供了一种propellerDisk 模型,支持网格运动;propellerDiskForce 将螺旋桨盘产生的反向作用力和力矩施加于其所连接的机体,后续已对此进行修正。通用边界条件 Pressure :使用参考压力时,修正了waveSurfacePressure 边界条件。
Temperature :externalTemperature 边界条件现在可与外部辐射发射率配合使用,无需同时指定外部对流换热系数。
General :计算质量扩散的边界条件已更新,采用有效扩散率替代原先假设路易斯数为1的方案。
案例配置 常规配置 :在教程中,getApplication 函数和controlDict 文件中关联的application 条目已被尽可能移除,因其默认值为foamRun 。新增的foamMergeCase 工具可从现有案例创建新案例,并合并微小改动。nCorrectors 输入关键词现统一用于指定PISO、PIMPLE、VoF、multiphaseEuler 相分数求解、populationBalance 、scalarTransport 及phaseScalarTransport 中的校正次数。
案例初始化 :输入文件编码条目中替换的关键词参数(如Ux )现已扩展为直接写入参数值,从而支持模拟重启。writeOptionalEntries 开关会打印模拟中使用的默认值,便于用户核对。
单位 :阿伏伽德罗常数、普适气体常数和法拉第常数均提供两种变量形式,一种以摩尔(mol)为单位,另一种以千摩尔(kmol)为单位:NA 、R 和F 使用mol;NNA 、RR 和FF 使kmol。带量纲的常量值现可自动在不同单位系统间转换。
可视化 Animation :新增的 foamVTKSeries 脚本可生成 .vtk.series 文件,该文件可在 ParaView 中打开,用于解析OpenFOAM后处理生成的一系列VTK文件。Graphs :改进后的 foamMonitor 工具可在交互模式下默认打开图形窗口并实现安全关闭。ParaView reader :通过paraFoam 脚本启动的PVFoamReader 现已支持读取分解案例。时间选择器不再卡死在序列模式,始终能正确显示案例时间。案例 Template cases :新型nonConformalCHT 模板案例有助于创建共轭传热(CHT)模拟,其中流体与固体区域通过非共形耦合(NCC)界面实现耦合。incompressibleFluid :simpleRushtonMRF /NCC 示例案例提供了一个带Rushton涡轮的圆柱形储罐。cylinder 包含参数化blockMeshDict 文件。venturiTube 为Venturi tube example in Notes on CFD中的文丘里管案例。moodyChart 通过单一模拟生成穆迪图上的数据点。fluid :roomHeating 基于room heating example in Notes on CFD中的房间加热案例。incompressibleVoF :parshallFlume 模拟水流经ISO标准Parshall Flum的过程。multiphaseEuler :aeratedStirredTank 为搅拌釜反应器的典型案例,采用multiphaseEuler 求解器运行。shockFluid : diffuserIntake , 包含试验数据.其他 其他数值计算 :实现了N×NscalarSquareMatrix 的eigendecomposition 。将惯性张量转换为使用symmTensor 形式。优化了多边形三角剖分算法的鲁棒性。
场处理 :修改了GeometricField 的模板参数,该模板是场操作与处理(FOAM)的基础构建模块,使其内部场支持更灵活的选项。新增fvc::surfaceIntegrateExtrapolate 函数,可生成包含边界值的完整场;而surfaceIntegrate 和surfaceSum 函数现在仅返回内部场。
数据管理 :移除了OpenFOAM中不必要的字典复 制操作。
启动代码 :foamNewApp 脚本新增 -plain 选项,用于生成简单(非CFD)应用程序的初始代码框架。
贡献 OpenFOAM 13由CFD Direct 开发团队出品,核心成员包括:Henry Weller、Will Bainbridge、Chris Greenshields以及Aidan Wimshurst。
Stanislau Stasheuski、Clemens Gößnitzer、Ronald Lehnigk、Timo Niemi和Mahmoud Gadalla参与了项目贡献。
许可证 OpenFOAM 13 由OpenFOAM Foundation依照General Public Licence v3条款发布。
以上内容翻译自:https://openfoam.org/release/13/
” (完)
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-07-22
最近编辑:4月前
博士
|
教师
探讨CFD职场生活,闲谈CFD里外
关注
获赞 2672 粉丝 12271 文章 868 课程 27