首页/文章/ 详情

OpenFOAM 13发布

精品
作者优秀平台推荐
详细信息
文章亮点
作者优秀
优秀教师/意见领袖/博士学历/特邀专家
平台推荐
内容稀缺
4月前浏览975

OpenFOAM基金会宣布推出由CFD Direct开发的OpenFOAM 13版。该版本主要更新包括:重构后的网格区域可动态更新,且更易用、鲁棒性更强(取代原有的topoSet);采用基于场的拉格朗日方法,新代码已完成65%,灵活性、扩展性和效率较现有版本均有提升;改进MULES算法以确保有界性并加速求解过程(如多相流场景);重构传质模型;通过ParaView支持分解case的可视化优化,新增foamVTKSeries动画功能并增强foamMonitor;针对多区域模拟、case配置、网格生成、功能对象、多相流及燃烧等领域进行了多项改进与功能扩充。

OpenFOAM 13包含以下重要更新内容:

  • 模块求解器:包含可关闭的flowthermophysicsmodels开关选项。
  • MULES:确保有界性,不受迭代器收敛性影响。
  • 多相流:采用multiphaseEuler求解器大幅加速多相流模拟。
  • 运输/热力学:为multiphaseEuler求解器重写质量传输模型。
  • 燃烧:改进发动机模拟中的点火与燃烧模型。
  • 颗粒:基于场的新型拉格朗日模型完成度达65%,具备更高灵活性、可扩展性和效率。
  • 网格:升级网格生成及多网格区域耦合功能。
  • 网格区域:提供更稳定、实用、灵活且功能完善的替代方案。
  • 多区域模拟:改进非共节点连接(NCC)、网格缝合与映射技术。
  • 功能对象:优化scalarTransport功能,新增power、反应速率及cutLayerAverage功能。
  • 模型:新增propellerDisk模型并改进fvFieldSource功能。
  • 边界条件:优化压力、温度及质量扩散边界条件。
  • 案例配置:新增foamMergeCase工具。
  • 可视化:ParaView支持读取分解的case,foamVTKSeries支持动画生成。
  • 案例:新增单相流、多相流、不可压缩与可压缩流动的示例。
  • 其它foamNewApp脚本可生成非CFD应用的初始代码框架。
  • 代码提交量约832次,解决问题约150项。
  • 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:所有求解器模块现在均配备flowthermophysicsmodels开关,可分别禁用流动方程、热物理模型及附加模型的求解。
  • 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求解器类似。

  • 颗粒群平衡:颗粒群平衡方法中,可通过singleSizeGroupdistributionSizeGroup选项在边界或内部场指定尺寸组分数,二者均实现为边界条件和源项。populationBalanceSetSizeDistribution函数通过用指定分布的积分值覆盖尺寸组分数场中的值,设置群体平衡的尺寸分布。

输运/热力学

  • 传质multiphaseEuler求解器中的相变过程现已重构为一组fvModels模型,涵盖传热、蒸发、冷凝、溶解、空化、沸腾、均相成核以及反应驱动的传质过程。在multiphaseEuler求解器的混合力模型中,移除了对作用力正负符号(+/-)的通用化处理以及固定通量边界的处理逻辑,因为这些特性仅适用于特定模型。新增的adjustTimeStepToNucleation函数对象可根据液滴在multiphaseEuler求解器中成核的时间尺度(例如冷凝或相分离过程)控制时间步长。
  • 质量:新型二元扩散系数(binaryDiffusionCoefficient)采用温度对数的多项式函数表达。
  • 热力学incompressiblePerfectGas状态方程现已与perfectGas保持热力学一致性,适用于压力变化微小但可能受非预期压力振荡干扰的工况。
  • InterfacedevTau/Sigma函数返回表面牵引力(单位面积力),以确保CFD计算与后续数据处理(如力、功率等分析)的一致性。

燃烧

  • 点火:新增constantIgnitionfvModel用于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函数对象生成通过faceZonefaceSet或边界面颗粒值分布的曲线图。

网格

  • 常规:网格生成工具(如 snappyHexMesh )现在默认覆盖现有网格文件;**-noOverwrite** 选项改为复 制旧版默认行为,即将 polyMesh 目录写入时间目录。
  • snappyHexMeshConfig:用于配置 snappyHexMesh 的工具新增以下选项: -closedDomain 、 -minDimCells和 -regions ; -noBackground可阻止生成blockMeshDict文件; -insidePoints;以及 -rm 用于删除 snappyHexMeshConfig生成的网格配置文件。简化了可选参数的指定方式,无需使用过多括号。
  • snappyHexMesh:用于snappyHexMesh及其他工具的几何表面指定语法已简化:移除无关的searchable前缀,例如searchableBox现改为boxtriSurface(而非triSurfaceMesh)现用于指定表面几何文件(如OBJ或STL格式)。重写了添加分层时的区域保留功能。
  • extrudeMesh:新增path拉伸模型。统一了输入语法。
  • 转换:通过部分面重新编号优化了fluent3DMeshToFoam网格转换器。
  • 其他mergeMeshes现在可合并来自constant/meshes子目录的网格。mapFieldsmapFieldsPar工具现支持非共形耦合(NCC)接口的网格。
  • 运动:新增displacementLayeredMotionSolver可在对立面片间移动网格层。优化了网格运动、细化与分布以及二阶时间方案的互操作性。

网格区域

  • 概述:新开发的动态区域生成系统提供可配置的zoneGenerator,可生成包含一个或多个pointZonecellZone和/或faceZonezoneSet(区域集 合)。该系统包含多种zoneGenerators,用于创建并控制动态区域。针对faceZone,方向标识flipMap现为可选功能,但始终可通过flipMap区域生成器添加。
  • createZones:该功能作为topoSet的简化替代方案,可通过读取createZonesDictzoneGenerator文件创建细胞区域,操作更高效灵活。
  • 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接口。修复了非共形映射壁面面片在域分解时的排序问题。用户可间接控制非共形耦合接口的哪些面片成为ownerneighbour;owner面片会投影到neighbour面片上,因此owner通常对应较粗的网格。
  • Mesh stitching:提升了stitchMesh的鲁棒性。

函数对象

  • 常规:**#includeFunc** 指令现已支持参数中的宏展开功能。

  • 标量传输:优化了scalarTransportphaseScalarTransport功能,实现扩散率缓存以便在其他场景复用。scalarTransport函数对象现采用时间步长收敛后的通量场求解传输方程,phaseScalarTransport函数对象亦同步升级。

  • 场计算:新增power函数对象,用于计算多种功率场。

  • 反应速率:反应速率函数对象新增写入反应速率场选项。

  • 图表处理cutLayerAverage函数对象可生成沿指定方向垂直平面或给定距离场等值线进行体积平均的单元值图表。

  • 其他:群体平衡函数对象现兼容 HZDR 开发的 foamPostProcess

  • 数据输出:新增Function1s类型包括:沿x轴平移函数的shift、按指定周期/频率重复函数的repeat,以及将函数积分归一化(或二次缩放)的normaliseFunction1支持从OpenFOAM格式表格文件中选取特定数据列。

模型

  • Fluid sourcesfvFieldSource现在可对整个体积场进行操作,而非仅限于体积场中的局部区域。
  • Momentum:新增的rigidBodyPropellerDiskfvModel提供了一种propellerDisk模型,支持网格运动;propellerDiskForce将螺旋桨盘产生的反向作用力和力矩施加于其所连接的机体,后续已对此进行修正。

通用边界条件

  • Pressure:使用参考压力时,修正了waveSurfacePressure边界条件。

  • TemperatureexternalTemperature边界条件现在可与外部辐射发射率配合使用,无需同时指定外部对流换热系数。

  • General:计算质量扩散的边界条件已更新,采用有效扩散率替代原先假设路易斯数为1的方案。

案例配置

  • 常规配置:在教程中,getApplication函数和controlDict文件中关联的application条目已被尽可能移除,因其默认值为foamRun。新增的foamMergeCase工具可从现有案例创建新案例,并合并微小改动。nCorrectors输入关键词现统一用于指定PISO、PIMPLE、VoF、multiphaseEuler相分数求解、populationBalancescalarTransportphaseScalarTransport中的校正次数。

  • 案例初始化:输入文件编码条目中替换的关键词参数(如Ux)现已扩展为直接写入参数值,从而支持模拟重启。writeOptionalEntries开关会打印模拟中使用的默认值,便于用户核对。

  • 单位:阿伏伽德罗常数、普适气体常数和法拉第常数均提供两种变量形式,一种以摩尔(mol)为单位,另一种以千摩尔(kmol)为单位:NARF使用mol;NNARRFF使kmol。带量纲的常量值现可自动在不同单位系统间转换。

可视化

  • Animation:新增的 foamVTKSeries 脚本可生成 .vtk.series 文件,该文件可在 ParaView 中打开,用于解析OpenFOAM后处理生成的一系列VTK文件。
  • Graphs:改进后的 foamMonitor 工具可在交互模式下默认打开图形窗口并实现安全关闭。
  • ParaView reader:通过paraFoam脚本启动的PVFoamReader现已支持读取分解案例。时间选择器不再卡死在序列模式,始终能正确显示案例时间。

案例

  • Template cases:新型nonConformalCHT模板案例有助于创建共轭传热(CHT)模拟,其中流体与固体区域通过非共形耦合(NCC)界面实现耦合。
  • incompressibleFluidsimpleRushtonMRF/NCC示例案例提供了一个带Rushton涡轮的圆柱形储罐。cylinder包含参数化blockMeshDict文件。venturiTube为Venturi tube example in Notes on CFD中的文丘里管案例。moodyChart通过单一模拟生成穆迪图上的数据点。
  • fluidroomHeating基于room heating example in Notes on CFD中的房间加热案例。
  • incompressibleVoFparshallFlume模拟水流经ISO标准Parshall Flum的过程。
  • multiphaseEuleraeratedStirredTank为搅拌釜反应器的典型案例,采用multiphaseEuler求解器运行。
  • shockFluiddiffuserIntake, 包含试验数据.

其他

  • 其他数值计算:实现了N×NscalarSquareMatrixeigendecomposition。将惯性张量转换为使用symmTensor形式。优化了多边形三角剖分算法的鲁棒性。

  • 场处理:修改了GeometricField的模板参数,该模板是场操作与处理(FOAM)的基础构建模块,使其内部场支持更灵活的选项。新增fvc::surfaceIntegrateExtrapolate函数,可生成包含边界值的完整场;而surfaceIntegratesurfaceSum函数现在仅返回内部场。

  • 数据管理:移除了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/


(完)



来源:CFD之道
MeshingACTFluentSystemMotionSolve多相流燃烧动网格群体平衡通用控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-07-22
最近编辑:4月前
CFD之道
博士 | 教师 探讨CFD职场生活,闲谈CFD里外
获赞 2672粉丝 12271文章 868课程 27
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈