首页/文章/ 详情

CFD萌新入门|开源CFD代码

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

本文介绍开源 CFD 软件包 OpenFOAM。

 

注:本文翻译自网络,原文地址:https://www.resolvedanalytics.com/theflux/comparing-cfd-software-part-2-open-source-cfd-software-packages 。下文中所有对软件功能及性能的评价均为原作者的观点,并不表示本公 众号完全认可文中的观点。

以下为翻译内容。

使用开源软件有许多好处。除了免费 使用和分发之外,开源软件还为用户提供根据需要修改源代码的许可。在某些情况下,还存在支持用户学习和代码开发的在线用户社区。

一些最常见的开源代码包括 OpenFOAM、SU2、Palabos、Fire Dynamics Simulator 和 MFIX。OpenFOAM 是迄今为止使用最广泛的,将是本次讨论的焦点。

常用的CFD开源软件官网:
软件名称官网地址
OpenFOAM(基金会版本)https://openfoam.org/
OpenFOAM(ESI版本)https://openfoam.com/
SU2https://su2code.github.io/
Palaboshttp://www.palabos.org/
FDShttps://pages.nist.gov/fds-smv/
MFIXhttps://mfix.netl.doe.gov/
 

译者注:OpenFOAM 是通用 CFD 软件包,SU 2 比较专注航空外流场,Palabos 使用 LBM,FDS 主要做火灾消防,MFIX 主要关注多相流。

OpenFOAM(OpenFOAM)近年来通过不断增长的用户群进行的验证和确认(V & V)研究获得了相当大的可信度。越来越多的大学和公司也在独立使用 OpenFOAM,并与其他商业代码结合使用。浏览以前的 OpenFOAM用户会议议程,可以看到梅赛德斯奔驰、巴斯夫、宝马、大众和英特尔等公司都在其中。这并不奇怪,因为拥有巨大仿真工作负载的大公司从免费软件许可中受益最大。

OpenFOAM 是一种优秀的计算流体力学工具,在学术界得到广泛应用。但它也有一些缺点,使其无法在工业界普及。

 

译者注:OpenFOAM 事实上并不能称之为 CFD 软件,它只是一个开源 CFD 代码库。虽然 OpenFOAM 提供了一些预编译求解器,但仅仅这些求解器距离完整的 CFD 流程所需的工具链还相去甚远。

1 OpenFOAM背景

OpenFOAM 最初简称为 "FOAM",是一套基于有限体积的数值算法,最初由伦敦帝国学院 Henry Weller 的 CFD 小组于 1989 年开发。FOAM 是 Field Operations and Manipulation 的缩写。一个有趣的现象是,Weller 先生和他的同事们当时很有远见地使用了 C++,而不是更普遍的工程编程语言 FORTRAN,以利用其面向对象的能力。想法不错。随后,Weller 先生及其同事成立了 OpenCFD 有限公司并将 OpenFOAM 开源,该公司随后被 Silicon Graphics International (SGI) 和后来的 ESI 收购。与此同时,OpenFOAM 的版权转让给了 OpenFOAM 基金会。

这两个组织都提供与 OpenFOAM 相关的软件包和教程下载。两者的代码库几乎相同。软件的发布周期和软件版本的 "编号" 略有不同。因此,您可能会发现一个版本或另一个版本具有(或不具有)您正在寻找的某项功能。基金会通常每年发布一到两次版本,版本号分别为 4.0、5.0、6.0(当前版本)。OpenCFD 也有类似的发布计划,但版本号不同,其根据发布的年月来确定以防混淆(目前是 v1806,即 2018 年 6 月)。

 

译者注:本文写于2020年。随着时间的推移,ESI与基金会的OpenFOAM之间的差异越来越大。当前(2023年9月)ESI的最新版本为2306,基金会的版本为V11。

2 Linux及Windows版本

OpenFOAM本身是一个基于 Linux 的程序,这意味着你需要使用一个基于 Linux 的操作系统,如 Ubuntu、Fedora 或 Redhat Linux Enterprise,或者你需要通过 Windows 中的虚拟机运行 OpenFOAM。不言而喻,在使用 OpenFOAM时,一定的 Linux 知识或背景会非常有用。

最近,微软在 Windows 10 中实现了将 Linux Bash Shell 作为应用程序运行的功能,这是为扩大 OpenFOAM用户群迈出的关键一步。安装该应用程序后,Windows 用户可以直接从 Windows 桌面下载、安装并通过该应用程序运行本机 OpenFOAM。

在此之前,Windows 用户要运行 OpenFOAM,需要在电脑上 "双启动 "并在启动时运行 Ubuntu。这就需要对硬盘进行分区,以便将 Windows 和 Ubuntu 文件存储系统分开。幸好有了 Windows Linux Bash Shell,你可以在 Windows 中直接访问 OpenFOAM文件,并通过你最喜欢的 Windows 文本编辑器对其进行编辑。

OpenCFD 还发布了OpenFOAM 的 Windows "容器化 "版本。该版本通过 Docker 技术在 Linux 环境之外运行,该技术将源代码容器化为 Windows 7、8 或 10 可以运行的应用程序。

安装完成后,初次使用的用户可能会惊讶地发现,他们实际获得的是一个包含大量文本文件(称为dictionaries或dicts)的目录结构。那些喜欢使用标准图形用户界面指导工作流程(从模型设置和网格划分到运行仿真再到后处理)的用户应该另寻他处。或许可以看看 OpenFOAM封装器,如 此处 所讨论的那些封装器。相反,用户通过自己选择的文本编辑器与 OpenFOAM进行交互,并通过 Linux 命令行中的可执行文件启动进程。

3 工作流程和物理功能

虽然有些吓人,但设置一个简单的问题并不难,如果能找到一个与你的问题相似的教程,设置起来就更容易了。教程库中有很多教程,希望有一个适合你。典型的工作流程是将教程目录复 制到项目的本地工作文件夹中。这样您就可以修改本地项目文件夹中的网格、边界条件、流体属性等,而不会对原始下载包造成任何影响。

OpenFOAM 开箱即用,功能强大。它可以求解瞬态或稳态流、湍流或层流、牛顿或非牛顿流体、多相流(拉格朗日粒子和欧拉/VOpenFOAM)、反应流和被动标量等。虽然使用这些功能并不需要 C++ 编程技能,但它们确实降低了难度。一般来说,每个内置求解器都是为特定类型的问题量身定制的。这意味着您需要事先了解您的应用程序中存在哪种类型的物理问题,以及哪种类型的基于有限体积的数值算法最适合解决这些物理问题。下面简要列出了一些更常见的求解器及其相关物理特性。

 

在这一环境中分配适当的求解器设置是成功模拟的一个关键方面,即使对最有经验的 CFD 工程师来说也是一个挑战。

所有这些都可能有点令人生畏,但每个目录都可视为一个组织桶,桶内的每个 "字典 "文件都不会过于复杂。一般来说,只要将典型求解器设置配置为自己喜欢的设置,就只需修改每个案例的流体属性和入口/出口边界条件即可。这对于重复求解相同类型问题的用户来说非常方便,因为在这种情况下,整个案例/项目目录结构都可以重复使用,而无需更改任何内容(网格除外)。

4 网格划分

目前,缺乏易用且功能强大的内置网格工具是包括 OpenFOAM在内的所有开源 CFD 程序的绊脚石。 内置网格工具 blockMesh 对于矩形管道等基本几何图形来说还算合格,但对于更复杂的几何图形来说几乎毫无用处。附加实用程序 snappyHexMesh 可以读取 STL 格式的曲面几何文件,作为在虚拟风洞中进行测试的主体。要获得像样的网格,需要进行细化和清理。这一过程既费力又费时,特别是对于具有小特征的复杂情况。对于在典型 3D 实体建模环境中创建几何体的内部流动问题,没有任何实用程序可以实现网格划分。

不过,OpenFOAM确实包含几个转换器实用程序,可将其他软件包中的网格转换为所需的网格文件结构。对我们来说,这是将高质量网格导入 OpenFOAM的最简单快捷的方法。不过,这需要使用第三方网格生成软件。著名的内置转换器包括 ccmTOpenFOAMoam 和 fluentMeshTOpenFOAMoam,它们可以将西门子的 STAR-CCM+ 和 ANSYS Fluent 网格转换为 OpenFOAM格式。其他常见的网格工具,如 Pointwise 和 Gmsh,也可以直接导出为 OpenFOAM 网格文件格式。此外,建议在运行此类工具后检查生成的网格,以确保转换成功。OpenCFD 文档中讨论了更多选项。不过我们需要注意的是,在使用内置转换器从商业软件网格进行转换后,我们曾遇到过无法解释的求解器稳定性问题。

5 求解与后处理

一旦有了网格几何体,物理模型和求解器设置也准备就绪,就可以导航到案例目录,然后在命令行终端输入求解器关键字,如 simpleFoam。就是这样。您的案例就可以运行了。当求解器运行时,您可能会在命令行/终端窗口中看到每次迭代的残差。你也可以将它们写入日志文件。

OpenFOAM的一个特别优势是,它允许 "分解 "问题,并在多个处理器上并行运行,甚至在网络上的多个 CPU 节点上并行运行。使用 OpenFOAM时,必须在system目录下设置一个decomposeParDict文件。该文件允许用户指定将使用多少个处理器,以及如何将域分配给每个处理核心。字典准备就绪后,"decomposePar "例程将被调用,并将模型分解成指定的部分。仿真完成后,用户必须在后处理前调用 "recompose "例程。虽然这些例程需要时间,但通过并行化可以大大缩短大型问题的仿真时间。

新版 OpenFOAM添加了一个名为foamMonitor的例程,允许在启动作业后在终端键入第二条命令,以交互方式绘制守恒方程残差。要使其正常工作,还需要一些其他设置步骤,但一旦开始工作,它就能很好地工作。遗憾的是,由于 Ubuntu bash 无法显示曲线图,因此无法在 Windows 10 中运行。

 

总的来说,我们发现 OpenFOAM求解器非常稳健。对于顽固的问题,调整众多求解器设置(如欠松弛因子、离散化阶数和时间行进方案)的能力总是很有帮助。

OpenFOAM 附带一个名为 ParaView 的开源后处理软件。ParaView 的功能包括大多数标准的科学可视化,如等值线图、矢量图、流线图和线图。可以沿线和点提取数据。时间步长结果之间的轻松切换允许创建动画。下图是 ParaView 根据 Ahmed Body 参考问题制作流线图的示例。需要注意的是,ParaView 有免费的 Windows 独立版本,我们使用的实际上就是这个版本。另外,用户也可以将 OpenFOAM结果导出到第三方商业软件,如 Ensight 或 FieldView (需要许可证),以便在您选择的软件包中对模型结果进行后处理。

 

6 小结

  • OpenFOAM 是一款出色的流体力学计算工具。它具有以下优势:

    • 大量功能和多种求解器,可应用于多种类型的流动问题
    • 在过去二十年(至少二十年)里,由专门解决计算流体力学问题的人员开发和完善的产品
    • 具有许多开源软件的典型优势,如广泛的用户群、在线教程和示例问题,以及根据个人喜好定制代码库的能力
    • 在学术界和工业界的认可度越来越高
    • 无需购买成本!
  • OpenFOAM也有一些缺点,可能会阻碍它的普及/主流化,其中包括

    • 学习曲线陡峭,用户需要具备一定的高级专业知识,才能确定要解决哪些重要的物理问题,以及如何将这些物理问题与数值算法进行最佳匹配
    • 需要基于 Linux 的操作系统或某些 Windows 版本的 OpenFOAM,这些版本可能具有或不具有 OpenFOAM的所有本地功能/实用程序(例如绘制交互式残差图)。掌握一些基本的 Linux 文件操作命令也很有帮助。
    • 缺乏高性能的内置网格划分工具
    • 需要学习额外的后处理软件包
    • 与工作流程优化的商业软件(集预处理、求解和后处理于一体)相比,由于工作流程相互脱节,因此需要额外的时间来设置和分析模型结果。

(完)


来源:CFD之道
FluentOpenFOAM多相流湍流通用航空其他软件消防Pointwise曲面ParaView
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-09-23
最近编辑:1年前
CFD之道
博士 | 教师 探讨CFD职场生活,闲谈CFD里外
获赞 2566粉丝 11297文章 734课程 27
点赞
收藏
未登录
2条评论
友善的龙蹲儿
签名征集中
1年前
我本科只是了解了一些工程热力学和流体力学,还要学习那些前备知识吗?
回复
友善的龙蹲儿
签名征集中
1年前
老师太强了,我目前入职了,想提升一下自己跟着老师学习一下
回复
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈