吾生有涯 学海无涯
析模有界 知识无界

OpenFOAM 14更新文档

OpenFOAM 基金会正式宣布,由 CFD Direct 开发的开源计算流体力学(CFD)工具箱 OpenFOAM 14 版现已发布。本次更新带来了多项重要改进与新特性,显著提升了求解器的灵活性与易用性,主要更新内容包括:

  • 场初始化与边界条件增强:新增场函数及 functionalFixedValue 边界条件,支持直接初始化非均匀场并设定固定值边界。这一改进使得相关配置可在算例中直接完成,无需再依赖 setFields 等预处理工具,简化了工作流。
  • 原生单位系统支持:单位现已作为标准特性集成至输入参数中。通过新增的 foamUnits 工具和命名量纲机制,用户可更直观、安全地定义物理量,降低了因量纲不一致导致的错误风险。
  • 动态代码框架全面革新:对编码文件输入(动态代码)框架进行了重构,引入了 #codeDict#stream#print 等多个新指令,大幅增强了运行时代码生成的灵活性与可控性。
  • 模块化拉格朗日方法演进:持续推进模块化拉格朗日方法的开发,为现有实现提供了更具扩展性、更高效且灵活的替代方案,便于针对复杂颗粒流问题进行定制与优化。
  • 燃烧求解器创新重写:XiFluid 燃烧求解器经历了创新性重构,深度融合了多相流方法与 MULES 算法,显著提升了燃烧模拟的精度与稳定性。

OpenFOAM 14 带来了多项重要更新与功能增强,主要亮点如下:

  • 模块化求解器:对 isothermalFilm 和 isothermalFluid 求解器进行了针对性改进。
  • 多相流:优化了 multiphaseEuler 求解器中的壁面沸腾与冷凝模型。
  • 输运与热力学:增强了针对液体、混合物、液膜及相变过程的处理能力。
  • 燃烧模型:引入 MULES 算法,将 XiFluid 重构为两相求解器。
  • 模块化拉格朗日方法:一套兼具灵活性、可扩展性与高效性的替代方案已完成 80% 的开发进度。
  • 网格技术:在网格生成、区域处理、非共形连接(NCC)、网格运动及表面操作等方面实现了功能新增与改进。
  • 函数对象:优化了涡流可视化与通量计算功能,并新增了截面力计算工具。
  • 场与边界初始化:引入了新的场函数以及 functionalFixedValue 边界条件。
  • 边界条件:改进了热边界条件,并利用场函数简化了配置流程。
  • 代码化案例配置:优化了编码文件输入的指令系统,并扩展了多条新指令。
  • 单位与量纲:将单位系统确立为标准特性,同时推出了 foamUnits 工具。
  • 其他案例配置:简化了包括表面波初始化在内的多项功能设置。
  • 可视化:提升了 ParaView 在读取异常输入文件时的鲁棒性,有效防止崩溃。
  • 随机案例:新增了热辐射、焦耳加热导热等典型算例。
  • 其他改进:包含多项底层编程优化,使编码文件输入的编写更为便捷。

本次版本更新累计包含约 938 次代码提交,修复了约 130 个已知问题。在编译环境方面,已全面支持 ISO/IEC 14882:2014 (C++14) 标准,并通过了 GCC v5.5+ 及 Clang v14+ 的兼容性测试。

OpenFOAM 14 已针对主流平台完成 packaged 发布,全面支持 x86_64(涵盖 Intel 与 AMD 处理器)及 ARM64 硬件架构。具体安装方式如下:

  • Ubuntu Linux:提供适用于 Ubuntu 22.04、24.04 及 26.04 的 packaged installation;
  • Windows:通过 Windows Subsystem for Linux 运行,并配合 Ubuntu 安装包进行部署;
  • macOS:借助 Canonical Multipass 虚拟化环境,配合 Ubuntu 安装包实现运行。

此外,用户也可获取 OpenFOAM 14 Source Pack,在兼容的 Linux 平台上自行编译。

1 模块化求解器

  • 优化了模块化解法器在错误选择场景下的提示机制,使报错信息更为明确具体,有助于快速定位并排查问题。
  • 修正了 isothermalFilm 求解器的边界处理逻辑。针对采用固定速度边界条件约束体积通量的情形,现已确保在固定通量条件下体积通量与速度场保持一致,并严格满足液膜体积守恒要求。
  • 改进了 isothermalFluid 及其派生求解器对入口超音速流动的处理机制,有效提升了相关工况下的计算稳定性与数值准确性。

2 多相流

  • multiphaseEuler 求解器在代码结构、输入文件语法及群体平衡模型方面均实现了显著简化。同时,该求解器新增了对 surfaceScalarField 的 zeroFixedValue 边界条件支持。此项改进不仅确保了相通量场在壁面处严格为零,还能在维持正确通量平衡的前提下,有效防止数值被意外修改。
  • multiphaseEuler 求解器引入了 wallCondensation 和 phaseSurfaceCondensation 两个新模型。借助全新的 alphatPhaseChangeWallFunction 边界条件,壁面沸腾与冷凝过程现可在同一patch上实现耦合运行。此外,官方配套提供了 wallCondensation 与 condenser 教程案例,便于快速上手验证。
  • 针对多相流场景,均相成核模型完成了重构与优化。改进后的模型能够精准匹配 CFD 算法的最佳计算时机进行更新,从而显著提升求解效率与稳定性。
  • 群体平衡模拟的配置流程得到进一步精简,尤其是针对聚并与破碎过程的参数控制,变得更加直观与便捷。

3 输运/热力学

  • 新增 function1Pressure 饱和模型,允许通过自定义曲线定义饱和压力与温度的函数关系,显著增强了相变模拟的配置灵活性。
  • 引入 Fuller (-Schettler-Giddings) 模型用于计算气体二元扩散系数;同时在流体热物理输运模块中增设层流扩散函数 D,方便各子模型统一调用。
  • 粘弹性模型现已支持指定多组松弛时间及其对应的粘度参数。新增 simplifiedViscousStress 模型,为不可压缩流体提供膨胀项恒为零的简化应力形式。针对液膜模拟场景,推出 Stokes 与 lambdaThixotropicmomentumTransport 模型的简化变体,有效提升了复杂表面流动计算的稳定性。
  • scalarTransportphaseScalarTransport 及 age 函数对象新增可选配置项 solverField。该选项独立于 schemesField,实现了对求解字段的精细化控制。
  • 重构并简化了热物理输运模块中的相处理逻辑,在提升代码可维护性的同时优化了执行效率。
  • 新增 zonalMixture 热物理混合模型,支持在不同网格区域定义差异化的物性参数,以满足非均匀介质的模拟需求。
  • 新增 solidElectricalConductionfvModel,用于计算固体区域的电传导过程,并将产生的焦耳热作为源项自动耦合至能量方程。
  • 修正了甲醇的表面张力物性数据,保障了相关界面模拟结果的准确性。

4 燃烧

  • XiFluid 求解器(广泛应用于发动机燃烧模拟)已完成基于多相流方法的重构。在该框架下,未燃与已燃气体被处理为两个独立相,焓方程采用守恒形式求解,混合物平均物性则通过两相物性加权计算获得。目前,求解器已在已燃气体中集成多组分热力学与化学反应模型,能够有效支持富燃燃烧条件下的反应过程分析及污染物预测。针对数值计算稳定性问题,新增了火焰熄灭稳定化项,用于补偿在计算火焰法向时对 |grad(b)| 施加稳定化处理所引入的误差(该效应曾导致变量 b 在火焰背风侧无法精确趋近于 0)。此外,引入 uMulticomponentMixture 模型以描述未燃气体中的化学反应,并采用 bMulticomponentMixture 模型处理未燃气体污染物的化学反应。同时,浮力效应已被纳入未燃和已燃气体的能量方程中,进一步提升了物理模型的完整性。

  • 作为 Weller b–Xi 燃烧模型的新型点火速率模型,GaussianbXiIgnition 引入了基于时间的跨点火核高斯分布机制。与此同时,bXiKernelCorr 也得到优化,显著提高了点火后火焰核生长过程的模拟精度。

  • 新增示例案例验证表明,通过选用层流动量输运模型并将 Xi 参数设定为 1,XiFluid 即可有效模拟层流火焰传播特性。

  • XiFluid 求解器中的褶皱微分传播功能现已调整为可选项,且默认状态设为 off

  • 针对发动机网格运动场景,新增了专用的 multiValveEngineValveMotion 与 multiValveEnginePistonMotion 运动函数。

  • XiFluid 在未燃气体方程中引入了滑移速度项。面向共轭传热燃烧模拟,新增了适用于未燃及已燃气体的 ubCoupledTemperature 边界条件。此外,未燃与已燃气体的热输运及组分输运现由 multiphaseEuler 求解器的相系统统一处理,从而支持更广泛的输运模型选择。

  • chemistryModel 的选择机制已更新,现需通过 chemistryProperties 字典中的类型关键字进行显式指定,默认值为 standard。此外,化学反应计算支持限定在特定的 cellZone 内执行;对于反应仅局限于局部区域的算例,该功能可有效避免冗余计算,显著提升模拟效率。

  • fluxLimitedLangmuirHinshelwoodReactionRate 模型经稳定性优化,已消除对网格的依赖性。针对 Weller b-Xi 燃烧模型,新增 bXiQdot 函数对象,用于计算并缓存热释放率。为便于输出该模型的反应率信息,现支持写入 bSource 字段,具体配置需在控制字典中添加 cacheTemporaryObjects(bSource); 及 #includeFunc writeObjects(bSource)

  • 后处理功能进一步扩展,新增 ubAverage 与 ubDWEA 两个函数对象。二者专用于 XiFluid 求解器,分别负责输出未燃和已燃气体的算术平均值及密度加权系综平均值,从而为燃烧场分析提供更丰富的统计数据支撑。

5 拉格朗日颗粒

  • 借助模块化拉格朗日功能提供的打包模型 Cloud 如 parcelCloudkinematicParcelCloud),可便捷地将颗粒引入模拟流程。同时新增了 tracer 云类型,该类型下的颗粒仅随载流流动,适用于示踪分析。
  • 针对模块化拉格朗日框架中的颗粒注入过程,新增了多种速度边界条件,包括 fanVelocityflowRateConeDiskVelocity 以及 totalPressureConeVelocity,以满足更复杂的入口设定需求。
  • 优化了模块化拉格朗日模块中湍流扩散的计算算法,显著提升了求解效率。
  • 在模块化拉格朗日建模体系中,补充了质量传递模型,并实现了与多相流求解器的耦合功能。
  • 引入了热力学建模支持。针对经历膨胀或收缩过程的颗粒,大幅加速了能量方程的收敛速度,改善了计算稳定性。
  • 支持在颗粒云中指定多组分热力学模型,其功能特性与语法规范均与欧拉多组分热力学模型保持一致。此外,在模块化拉格朗日(亦称场拉格朗日)中新增了 multicomponentParticle 和 multicomponentParcel 云类型,专门用于处理变组分颗粒的模拟。

6 网格

  • 静态界面处理逻辑得到优化,移除了部分不必要的缝合与去缝合操作。同时,NCC 界面配置示例文件 createNonConformalCouplesDict 已完成更新,涵盖了所有者-相邻排序、moveUpdate 及 patchFields 指定等近期引入的新功能。
  • snappyHexMesh 中的 searchableSurfaces 现支持直接指定单位或缩放因子。此外,内部与外部区域的细化级别统一改为仅通过 level 关键字指定,且限定为单一数值。
  • blockMesh 新增 units 控制指令,允许使用 units [mm]; 替代传统的 scale 0.001; 写法,提升了配置直观性。同时,新增的 sweepFace 选项能够更精准地描述贴合弯曲几何的曲面块面。
  • extrudeMesh 的输入语法有所调整:nLayers 和 expansionRatio 参数不再提供默认值。依赖这些参数的拉伸模型必须显式指定数值,而不相关的模型则不再读取该配置。此外,当拉伸网格基于其他案例构建时,支持将结果写入当前案例或源案例的时间目录中。
  • splitMeshRegions 工具已进行全面重写,提供了一套更为合理且具备良好互操作性的选项集。
  • multiSolidBody 运动求解器现已支持拓扑变化,并将单体与多体刚体运动整合为统一的 functionalRigidBodyMeshMotion 系统。其中,多体刚体运动(multiRigidBodyMotion)支持网格到网格的映射功能;刚体运动新增 pointMasses 体选项;同时,rigidBodyDynamics 模块也增加了针对体的截面力矩评估能力。
  • 在配置 blockMesh 时,可通过 paraFoam -block 命令可视化块结构,该功能目前对配置错误具备更强的容错性。此外,有界球体功能的质量与性能也得到了显著提升。
  • 区域生成工具集得到全面扩展:新增 patchCellszoneGenerator,用于生成与 patch 相邻的单元区域;新增 nearPatchCells 区域生成器,可构建距离指定 patch 或 patch 组特定范围内的 cellZoneprintzoneGenerator 能够将生成区域的日志信息输出,便于核查输入文件中的区域配置是否正确;cellzoneGenerator 支持从面或点区域生成单元区域;同时还引入了 coded 区域生成器。另外,MRFZones 现可在拓扑变化(如网格细化)后正确执行更新操作。
  • 可搜索的 plane 现已定义为封闭表面,其几何形态类似于无限大球体的平坦区域,且内侧方向与表面法向相反。这一特性使得内外测试成为可能,例如可用于定义单元区域。平面表面的 planeType 将根据指定的平面参数自动推导,如当提供 point 和 normal 参数时,类型即被识别为 pointAndNormal。此外,新增了 surfaceRenamePatch 工具,专门用于重命名表面几何文件中的 patch。
  • mesh.db() 现返回注册网格数据的 objectRegistry,并可通过 parent() 函数访问其父级对象。新增的 poly() 函数用于获取与 fvMesh 等高级网格概念关联的底层多边形或多面体数据,该函数特别替代了原 fvPatch 中的 patch() 方法。同时,polyBoundaryMesh() 也已被 poly().boundary() 取代。鉴于 fvMesh 与 polyMesh 在拓扑结构上存在差异,上述变更在 NCC 代码中尤为关键。此外,现在可以直接通过 mesh() 函数从 patch 访问所属网格。

7 函数对象

  • 新增 cellSum 函数对象,用于计算并输出指定场在所有单元上的数值总和。
  • histogram 函数对象现已支持限定在特定单元区域内执行,便于精细化分析场数据分布;flowType 函数对象经过重写,能够更有效地可视化涡流结构;修复了 surfaceFieldValue 函数对象在并行计算场景下的场数据写出异常;PecletNo 函数对象的适用范围已扩展至可压缩求解器;Mach 数函数对象现亦兼容多相流模拟。
  • 新增 patchFlux 与 faceZoneFlux 函数对象,支持计算任意物理属性的通量,突破了以往仅限速度通量的限制。specieFlux 函数对象已调整为广延量形式,即输出包含面面积的总通量而非单位面积通量。此外,引入了一组能量通量函数对象,涵盖对流能量通量 energyAdvectiveFlux、扩散(传导)热通量 heatFlux 以及总能量通量 energyFlux,以满足更全面的热力学分析需求。
  • 新增 writeMeshfunctionObject,支持在 controlDict 预设的输出时刻之外,灵活指定网格数据的写出时机。同时,generateZone 函数对象现具备生成、注册及写出区域(Zone)的能力。
  • 引入 sectionalForceProbes 与 sectionalForceGraph 函数对象,用于计算流经指定 patch 截面的流体作用力及力矩;其中 sectionalForceGraph 输出的数据可直接用于绘制剪力图与弯矩图。针对刚体动力学场景,提供了对应的等价版本 rigidBodySectionalForceProbes 和 rigidBodySectionalForceGraph,其输出结果中额外包含了刚体加速度信息。
  • 补充了用于生成 cellZone 的编码函数对象示例,便于用户参考与扩展。
  • 在使用 foamPostProcess 处理包含多个函数对象的配置文件时,可通过设置 writeControl none; 来禁用中间场数据的写出,从而提升后处理效率。此外,新增 indentOrNl 标记,用于优化文本输出的格式化效果。

8 物理场/边界初始化

  • 场的初始化现已支持多种非均匀值配置方式,通过将 internalField 设置为 zonaldistanceFunction(原 function1)、surfacescoded 或 fieldFunction 即可实现。这些选项分别对应按分区赋值、预定义函数计算、编码函数生成等机制。其中,surfaces 模式能够在被表面截断的单元中精确设置分数值;而 fieldFunction 则允许基于另一个场来评估 function1,适用于描述物性随温度变化等耦合场景。
  • 针对非均匀及随时间变化的入口场,提供了更为灵活高效的指定方法。初始版本已支持 zonaldistanceFunction 及 coded 函数,并可通过 value 条目直接定义非均匀场的场函数。此外,新增的 timeFunction 场函数专门用于处理仅随时间演变的边界条件,进一步丰富了动态场的表达能力。
  • 借助 functionalGeometricField,可利用函数同时定义场内部值与边界值。这一特性在处理非均匀扩散率场等复杂物理模型时尤为实用,有效简化了场与边界条件的协同配置流程。

9 通用边界条件

  • atmosphericBoundaryLayer 边界条件得到进一步优化。freestreamVelocity 现支持通过函数式方式指定自由流速度值,例如直接引用 atmosphericBoundaryLayer 场函数;同时,pressureInletOutletVelocity 边界条件中的 tangentialVelocity 参数也已支持场函数配置,提升了设定的灵活性。
  • 针对热耦合计算,coupledTemperature 边界条件新增了热辐射数值松弛选项。在 coupledTemperature 与 externalTemperature 中,传热系数现已支持随时间和空间动态变化,这使得在采用 coupledTemperature 的区域间设置热阻(如气隙)成为可能。该边界条件现在能够准确处理两个区域之间具有独立导热属性及热源的中间层或间隙。此外,新增的 displacementGapHeatTransferCoefficient 场函数,专门用于计算由表面位移(通常源于热变形)所形成间隙的传热系数。
  • 入口湍流场的边界条件设定已大幅简化,现统一归纳为 turbulentKineticEnergyturbulentEpsilon 和 turbulentOmega 三类,降低了配置复杂度。
  • 引入原型 meanInletOutlet 边界条件。该条件在功能上等效于标量 inletOutlet,其区别在于流入时的 inletValue 会自动计算为与 patch 相邻单元值的平均值,从而提供更平滑的边界过渡。

10 编码案例配置

  • 动态代码系统的编码文件输入机制已完成全面革新。针对编码文件输入过程中的编译错误,行号报告功能得到了显著优化,提升了问题定位效率。foamFind 工具新增 -coded 选项,支持在指定文件的 codeIncludecodeOptions 及 codeLibs 代码块中自动插入条目;同时引入 -C 与 -H 选项,可分别限定仅搜索 .C 或 .H 文件。此外,输入文件中 coded 条目自动编译时的行号反馈也进一步改进。在排查编译错误时,wmake -page 现已支持日志输出的滚动浏览,便于查阅详细信息。
  • #if ... #else ... #endif 预处理指令的通用性与灵活性得到增强。该指令现采用圆括号作为分隔符(例如 #if (#calc "${Uinlet} < 10")),整体语法结构更为规范完善。
  • #codeBlock ... #endCodeBlock:用于封装多个 #calc 或 #codeStream 条目,支持将其快速编译为单一库文件。该代码块内部允许直接包含头文件,便于组织依赖关系。
  • #stream:作为 #codeStream 的替代语法,提供了更为紧凑的书写形式,适用于追求简洁表达的场景。
  • #codeDict:用于从编码输入中生成字典结构,支持引用任意文件中的关键字条目,增强了配置的灵活性。
  • #calc:支持在 #codeInclude 中引用已包含的头文件,扩展了代码片段的编译依赖能力。
  • #print:用于输出字典内容(含默认值)。在字典末尾添加该语句即可打印当前配置,此机制替代了原有的 writeOptionalEntries 函数对象,并新增对 fvModels 和 fvContraints 的支持。此外,在 #includeFunc#includeModel 及 #includeConstraint 中指定 print 参数,亦可打印所有生效参数及其默认值。
  • #dump:将宏展开后的输入文件内容输出至终端,便于调试排查。该指令适用于 #codeDict 和 #codeStream 等场景(注:该功能原名为 #print,现已更名以避免混淆)。
  • #exit:强制终止模拟运行,主要应用于自动化测试或流程验证环节。
  • #include / #includeIfPresent / #includeEtc:支持可选参数传递,允许将变量注入被包含的文件中,增强了配置文件的模块化与灵活性。

11 单位与量纲

  • foamUnits 已由脚本升级为独立应用程序。除原有的量纲与单位列表功能外,新增单位换算计算能力,并支持打印指定量纲所对应的单位信息。
  • 全局配置(如 DimensionedConstants)现统一迁移至 $FOAM_ETC/configDict 文件中进行管理;案例级覆盖配置则置于 system/configDict。官方提供的 configDict 模板已包含常用设置项与开关示例。此外,单位定义及转换规则现可在案例 configDict 中独立声明,实现了与底层单位系统的解耦,从而更便捷地支持跨单位系统转换。
  • 当前的标准实践不再直接在物理属性中嵌入量纲,转而采用“指定单位并校验量纲”的模式。示例案例已全面使用命名量纲替代数值量纲,并引入了多种新的命名量纲定义。同时,所有求解器及库中 GeometricFields 的读取构造函数均已集成量纲一致性检查机制。
  • 类型化宏展开(如 $diameter)现已支持单位解析功能。例如,对于 diameter 500 [mm]; 这类定义,系统能够正确识别并处理其中的单位信息。

12 其他案例配置

  • 表面波的场初始化现已支持通过 waveAlpha 与 waveVelocity 场函数进行配置,提升了初始条件设置的灵活性。
  • 大气边界层的速度场及湍流场均可直接利用场函数完成初始化,简化了复杂边界条件的构建流程。
  • foamDictionary 工具新增 -create 选项;当目标文件不存在时,该选项可自动创建新的案例文件,增强了脚本处理的鲁棒性。
  • 包含模型系数的子字典名称已移除 Coeffs 后缀,同时保留了向后兼容机制,确保旧版配置文件仍可正常解析。
  • setFields 工具引入 extrapolatePatches 选项,支持将单元值外推至 patch 边界,并具备场值单位转换功能,进一步完善了数据预处理能力。

13 可视化

  • 修复了采样功能(例如用于生成图表)仅在按需模式下生效的问题。经过此次修正,基于采样的模拟性能获得了显著提升。
  • 增强了 ParaView 的稳定性与兼容性:当场文件与网格不匹配时,程序不再崩溃;加载字段文件时,若缺失 value 条目,也不再触发致命错误。此外,paraFoam 新增 -allRegions 选项,支持在启动时自动加载多区域案例的所有区域。同时,OpenFOAM 读取器模块已更新,以适配 Paraview v6.1 版本。

14 案例

  • 新增 concentricCylinders 示例,用于热辐射模型的验证。
  • 新增 DTCHullProp 案例,实现船体自推进过程的数值模拟。
  • 新增 vacuumFurnace 示例,演示耦合热辐射与自然对流的加热及冷却过程。

15 其他

  • propellerDisk 动量源模型现已支持可选的自动 adjustment 功能,能够动态调整螺旋桨推力以精确匹配船体阻力,从而提升仿真的一致性。
  • 新增 interpolateGrad 函数,专门用于计算基于 cellPoint 方法插值场的梯度;同时修正了 cubic 插值格式的计算逻辑。此外,引入了 limitedVanAlbada 和 VanAlbada01 两种新格式,以满足具有严格物理约束的标量场计算需求。
  • 优化了 GAMG 求解器的处理器聚合策略,有效提升了网络化处理器集群环境下的并行求解效率;同时修复了当最粗网格层级仅包含单个单元时,GAMG 求解器可能出现的异常问题。
  • foamFind 工具新增 -lnInclude 选项,用于输出包含指定源文件的 lnInclude 目录路径及对应的 -I 标志,便于在 options 文件中配置头文件包含路径。同时,引入了 coupledNeighbourField() 函数,作为 MULES 和 volPointInterpolation 中 boundaryNeighbourField() 的高效替代方案。预配置的 dimensionSets 现已采用更简洁的命名规范(例如以 velocity 替代 dimVelocity),支持直接用于构造带量纲的数值,如 velocity(1, 0, 0)。此外,还新增了支持场量纲的 GeometricField 读取构造器。
  • 新增 linearSequence 与 linearSequence01 函数,用于生成在指定边界间呈线性分布的 scalarField;其中 linearSequence01 变体默认将边界值固定为 0 和 1。
  • foamNewSolver 工具现可为新的模块化解法器自动生成初始代码框架。

致谢

OpenFOAM 14 由 CFD Direct 制作:Henry Weller、Will Bainbridge、Chris Greenshields 和 Aidan Wimshurst。 贡献者包括 Timo Niemi、Clemens Gößnitzer 和 Stanislau Stasheuski。

许可证

OpenFOAM 14 由 OpenFOAM Foundation 在 General Public Licence v3 下分发。


原文地址:https://openfoam.org/release/14/


(完)

本篇文章来源于微信公众号: CFD之道

赞(0) 打赏
版权声明:未经允许,请勿随意用于商业用途。
文章名称:《OpenFOAM 14更新文档》
文章链接:https://www.topcfd.cn/42792/
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到

说两句 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者吧

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册