首页/文章/ 详情

OpenFOAM是一个友好的CFD工具吗?

3小时前浏览7

开源CFD求解器,最常见的包括OpenFOAM、SU2、Palabos、Fire Dynamics Simulator和MFIX等。OpenFOAM是迄今为止使用最广泛的开源CFD求解器。

OpenFOAM(下面简称OF)近年来通过越来越多的用户群体执行的验证和验证研究获得了相当的信誉。越来越多的大学和公司也在独立或与其他商业代码结合使用OF。浏览以前的OF用户大会的议程,可以看到像梅赛德斯-奔驰、巴斯夫、宝马、大众和英特尔这样的公司都参与其中。这并不奇怪,因为这些大公司本身就有大量的模拟工作负载,从免费软件许可中获益最多。


OpenFOAM背景  

   
 

OpenFOAM最初只是“FOAM”,是由亨利·韦勒(Henry Weller)在伦敦帝国理工学院(London’s Imperial College)的CFD小组于1989年开发的基于有限体积的数值算法包。FOAM代表“Field Operations and Manipulation”。有趣的是,韦勒先生和同事们有远见地选择使用C++而不是当时更流行的工程编程语言FORTRAN,以利用其面向对象的能力。明智之举。随后,当韦勒和同事们创立了OpenCFD有限公司,随后被Silicon Graphics International(SGI)收购,后来又被ESI收购时,OpenFOAM变成了开源软件。同时,OpenFOAM的版权被转让给了OpenFOAM基金会有限公司。    

这两个组织都提供与OpenFOAM相关的软件包和教程下载。两者的代码库是相同的。软件发布周期略有不同,软件版本的“编号”也不同。所以你可能会发现一个版本有(或没有)你想要的某个功能。


Linux和Windows版本  

   
 

OF本质上是一个基于Linux的程序,这意味着你需要使用基于Linux的操作系统,如Ubuntu、Fedora或Redhat Linux Enterprise,或者你需要在Windows内通过虚拟机运行OF。不言而喻,在使用OF时,一些Linux知识或背景会派上用场。

微软在Windows 10及以后版本中实现了运行Linux Bash Shell作为应用程序的能力,这是扩大OF用户基础的一个关键步骤。一旦安装了这个应用程序,Windows用户可以直接从Windows桌面通过应用程序下载、安装和运行原生OF。    

在此之前,想要运行OF的Windows用户需要“双启动”他们的电脑,并在启动时运行Ubuntu。这需要对硬盘进行分区,以便Windows和Ubuntu文件存储系统分开。幸运的是,有了Windows Linux Bash Shell,你可以直接从Windows访问OF文件,并通过你喜欢的Windows文本编辑器编辑它们。

OpenCFD还发布了一个Windows“容器化”版本的OpenFOAM。这个版本通过Docker技术在Linux环境之外工作,将源代码容器化到Windows 7、8或10可以运行的应用程序中。

安装完成后,首次用户可能会惊讶地发现他们实际上获得的是一个包含大量文本文件(称为字典或dicts)的目录结构。那些更喜欢标准的GUI指导工作流程从模型设置和网格划分到运行模拟到后处理的人应该看看这里讨论的OF包装器。相反,用户通过他们选择的文本编辑器与OF交互,并通过Linux命令行启动进程。


工作流程和物理能力  

   
 

虽然有些令人生畏,但设置一个简单的问题并不难,如果你能找到一个设置与你的问题类似的教程,事情会变得更容易。库中有很多教程,希望有一个适合你。典型的工作流程是将教程目录复 制到你的项目的本地工作文件夹中。这允许你在本地项目文件夹中修改网格、边界条件、流体属性等,而不会冒险影响原始下载包。    

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

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

所有这些都可能令人生畏,但每个目录都可以被视为一个组织桶,每个“字典”文件都不是特别复杂。一般来说,你只需要为每种情况修改流体属性和进出口边界条件,一旦你配置了典型的求解器设置。这将对那些重复解决相同类型问题的用户提供便利,因为整个案例/项目目录结构可以一次又一次地重用,而不需要改变任何东西,除了网格。    


网格划分  

   
 

缺乏易于使用且功能强大的内置网格划分工具是包括OF在内的所有开源CFD程序的一个绊脚石。内置的网格工具,blockMesh,对于像矩形导管这样的基本几何形状来说是可以接受的,但对于更复杂的东西来说几乎无用。额外的工具,snappyHexMesh,提供了读取STL格式的表面几何文件作为在虚拟风洞中测试的体的能力。到达一个不错的网格需要进行改进和清理。这个过程是劳动密集型的,尤其是对于具有小特征的复杂案例。没有工具可以实施在典型的3D实体建模环境中创建的内部流动问题的网格。    

OF确实包括几个转换器实用程序,可以将其他软件包中的网格转换为所需的网格文件结构。对我们来说,这是将高质量网格快速导入OF的最简单和最快的方法。然而,这需要访问第三方网格生成软件。值得注意的内置转换器包括_ccmToFoam_和_fluentMeshToFoam_,显然它们将西门子的STAR-CCM+和ANSYS Fluent网格转换为OF格式。其他常见的网格工具,如Pointwise和Gmsh,能够直接导出到OpenFOAM网格文件格式。建议在运行这些实用程序后检查结果网格,以确保转换成功。OpenCFD文档中讨论了更多选项。我们应该指出,尽管如此,我们在使用内置转换器从商业软件网格转换后,偶尔碰到了无法解释的求解器稳定性问题。


求解和后处理    

   
 

一旦你有了一个网格化的几何体,物理模型和求解器设置准备就绪,你只需导航到案例目录并在命令行终端中输入求解器关键字,例如_simpleFoam_,就是这样,你的案例应该正在运行。你可能会看到求解器运行时每迭代的残差出现在命令行/终端窗口中。或者你可以将它们写入日志文件。

OF的一个特别优势是它允许“分解”你的问题,并在多个处理器上并行运行,甚至可以在网络上的多个CPU节点上运行。使用OF时,必须在_system_目录中设置_decomposeParDict_文件。此文件允许用户指定将使用多少处理器以及如何将域分配给每个处理核心。一旦字典准备好,就调用“decomposePar”进程,并将模型分解为指定的分区。模拟完成后,用户必须在后处理之前调用“recompose”进程。虽然这些进程确实需要时间,但通过并行化可以大大减少大型问题的模拟时间。

OF在较新版本中的增加了一个名为_foamMonitor_的进程,允许通过在作业启动后在终端中输入第二个命令来交互式地绘制守恒方程残差。要使其正常工作,还需要一些其他设置步骤,但一旦工作,它表现良好。不幸的是,由于Ubuntu bash无法显示绘图,这在Windows 10中无法工作。

总的来说,我们发现OF求解器是健壮的。对于棘手的问题,可以调整许多求解器设置,如欠松弛因子和离散化和时间步进方案的顺序,总是有帮助的。

OpenFOAM附带了一个名为_ParaView_的开源后处理软件。ParaView的功能包括大多数标准科学可视化,如等值线图、矢量图、流线和线图。可以实现沿线和点的数据提取。可以轻松切换时间步结果,以创建动画。ParaView有一个免费的独立Windows版本,这实际上是OF使用的。或者,用户可以将OF结果导出到第三方商业软件,如Ensight或FieldView(需要许可证),以便在您的软件包中后处理模型结果。    


结论  

   
 

OpenFOAM是计算流体动力学的一个很好的工具。以下是它明显的优势:

  1. 拥有大量能力和多种求解器,可以应用于多种类型的流动问题

  2. 该产品已经开发和完善了至少二十年,由专门解决计算流体动力学问题的专家开发

  3. 典型的开源软件优势,如广泛的用户基础、在线教程和示例问题,以及自定义代码库的能力

  4. 在学术界和工业界的接受度增加

  5. 它不花一分钱!

但也有一些缺点,可能阻碍了它变得更广泛/主流,包括:

  1. 陡峭的学习曲线加上需要某种高级用户专业知识来确定要解决的重要物理问题以及如何最好地将这些物理与数值算法相匹配

  2. 需要基于Linux的操作系统或可能没有所有原生OF功能/实用程序(例如,绘制交互式残差)的Windows版本的OF。了解一些基本的Linux命令对文件操作非常有帮助。    

  3. 缺乏高性能的内置网格划分工具

  4. 需要学习另一个后处理软件包

  5. 由于与商业软件解决方案的工作流程优化相比,工作流程脱节,因此需要额外的时间来设置和分析模型结果。这可能是大多数的CFD工程师们最大的阻碍。  


--- END ---

邀您关注

▽ 纯粹CFD:软件教程、行业应用、专业理论、

基础科普、研究前沿、严选培训广告

▽ 只聊CFD相关的大小事,信手天成,娓娓道来




来源:CFD饭圈
FluentCFXEnSightSystemStar-CCM+多相流燃烧湍流理论科普
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-10-13
最近编辑:3小时前
CFD饭圈
硕士 分享CFD文章,感谢关注
获赞 14粉丝 14文章 364课程 0
点赞
收藏
作者推荐

Star-CCM教程-多孔介质流场仿真

本教程模型通过一个催化剂几何体流动。几何如下所示。这个几何体中心的催化剂材料已建模为长 0.03 m 、直径为 0.1 m 的圆柱形多孔区。在多孔区域内,每单位长度的理论压降可使用公式来确定:其中v为经过介质的表观速度,Pi,Pv为定义多孔阻力的系数,分别称为惯性阻力和粘性阻力。 1-导入网格 1.启动Simcenter STAR-CCM+。2.从菜单栏选择新模拟选项。3.从菜单栏中选择文件>导入>导入体网格。4.在打开对话框中,导航至已下载教程文件的incompressibleFlow文件夹,然后选择文件catalyst.ccm。5.单击打开以开始导入。6.将该新模拟另存为isotropicPorousMedia.sim。 2-缩放网格 最初的网格在构建并未缩放,因此需要缩放以使多孔区的尺寸为 0.1 x 0.03 x 0.1 米。要确定多孔区的当前尺寸:1.在菜单栏中选择网格>诊断。2.在网格诊断对话框中,取消流体,然后单击确定。 输出窗口中显示的多孔区尺寸大约为:X 方向 -0.5 - 0.5,Y 方向 0.435 - 0.735 ,Z 方向 -0.5 - 0.5。3.从菜单中选择网格>比例缩放网格。4.在比例缩放网格对话框中,选择流体和多孔区域。5.输入值0.1,作为比例因子。6.要缩放域,请单击应用。网格区域尺寸会缩小。 7.单击关闭。8.单击可视化工具栏中的(重置视图),以在屏幕中恢复以前的缩放域的视图距离。要确认已经应用缩放,可执行网格诊断检查并查看输入值。 3-设置模型 1.要为连续体提供更合适的名称,请将连续体>物理 1节点重命名为空气。2.对于物理连续体连续体>空气,按顺序选择下列模型:3.禁用自动选择推荐物理模型。4.选择下列模型,依次是: 5.要查看所选模型,展开空气>模型节点。6.保存模拟。 4-设置边界条件 1.选择区域>流体>边界>入口>物理条件>湍流指定节点,然后将设为强度 + 特征长度。 2.编辑入口>物理值节点,然后设置下列边界条件: 5-指定孔隙率系数 1.选择区域>多孔节点,然后将设为多孔区域。 2.选择多孔>物理条件>湍流指定节点,然后将设为强度 + 长度尺度。3.选择物理值>湍流强度节点,然后将更改为0.14.选择物理值>多孔惯性阻力节点,然后将设为各向同性张量。5.选择多孔惯性阻力>各向同性张量>各向同性分量节点,然后将设为25kg/m4。6.选择多孔粘性阻力节点,然后将设为各向同性张量。7.选择多孔粘性阻力>各向同性张量>各向同性分量节点,然后将设为1500kg/m3-s。8.保存模拟。 6-设置停止条件 1.右键单击监视器>多孔区域压降监视器节点,然后选择根据监视器创建停止条件。 停止条件节点中出现一个名为多孔区域压降监视器条件的新节点。2.选择多孔区域压降监视器条件,然后将更改为渐进。3.选择渐近极限节点。确保复选框被激活,并将更改为0.02 运行该分析,直至多孔区域压降监视器中的变化达到 10 次连续迭代小于 0.02 Pa 的范围。由于上游交界面的压力预计量为 100 Pa ,只有在求解几乎达到收敛的时候才会出现这种情况。 7-运行模拟 1.单击顶部工具栏中的(运行)。 8-可视化结果 9-验证结果 1.右键单击报告>多孔区域压降节点,然后从菜单中选择运行报告。由本报告产生的值显示于输出窗口,为 138.59 Pa。要确定理论压降: 2.右键单击质量流率节点,然后选择运行报告。整个多孔区的质量流率是 2.91E-02 kg/s。由于流体密度是 1.18415 kg/m3并且多孔区的横截面积是 0.00786 m2,该值与通过该区域的 3.12 m/s 表面速度相对应。将这个表面速度代入dx= L = 0.03 m 的文章开头的公式中,得出整个多孔区的压降为 147.75 Pa,这意味着计算出的压降在理论压降 10% 内。这可以接受,因为理论压降公式假定多孔介质中恒定的表面速度。在这个比较中,您已使用一个基于质量流率的平均速度值,表明理论值仅近似于实际压降。 来源:CFD饭圈

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈