OpenFOAM是个优秀的CFD开源库,人们可以利用OpenFOAM开发专属的CFD求解器,也可以很方便地基于OpenFOAM验证自己开发的CFD算法,近些年来,OpenFOAM在学术界得到了CFD研究者越来越广泛的关注。然而在工业界,OpenFOAM虽说有一些应用,但和其在学术界的地位相比,仍可将其置为非主流一类。究其原因,基本可以归为以下几类:
-
与学术研究领域侧重于计算精度不同,工业应用更加侧重于效率与鲁棒性。而这恰恰是OpenFOAM相较于商业CFD软件的劣势所在。OpenFOAM目前缺乏完善且高效的GUI界面,算例准备仍然采用编辑文本输入文件的形式,在准备案例的过程中,用户需要输入大量硬编码的关键字,这严重影响了案例文件的准备效率。例如在设置案例时,需要指定某边界的速度值,按照正常操作逻辑,应该是选择某边界,然后直接输入其速度值和速度方向即可。然而在文件式case中,用户需要输入一长串代码文本,更麻烦的是如果输入文本存在错误,在编辑的过程中无法直接发现这些错误,它们只能在求解器运行时才会被发现,这非常不利于案例调试。 -
OpenFOAM可以借助于blockMesh与snappyHexMesh生成计算网格,然而blockMesh一般只用于较为简单且规则的几何模型,而snappyHexMesh虽说可以针对较为复杂的模型,但想要获取高质量的计算网格,其输入文件准备仍然非常繁琐。在实际工业应用中,可能需要借助于第三方网格工具生成计算网格。好在OpenFOAM有非常完善的网格导入接口,可以兼容大部分主流的流体网格格式。虽然应用问题可以解决,但借助于第三方工具无疑会增加成本。这与选择OpenFOAM的初衷不符,起初之所以选择OpenFOAM,大部分的原因还是因为看中它的开源免费。 -
工程应用比较看重稳定性。很多情况下不太精确的结果要比没有结果强得多。我们希望有一套默认参数可以在大多数情况下能够很好的工作,而不是以精度为借口的发散退出。然而遗憾的是OpenFOAM官方并没有提供这种默认的参数组合。OpenFOAM提供了大量的Tutorials用于展示OpenFOAM的功能特性,然而官方也明确说明了这些Tutorials中的参数设置并非是最优的参数组合,用户在使用的过程中需要对多种参数组合进行比较,从中选出最适合当前案例的参数设置。这实际上是给应用难度增加了一道门槛,就像是我只是想要用菜刀切个菜,你却让我去学热处理一样。最主要的是OpenFOAM中需要设置的参数还真不少,组合选优并不是一件轻松的事情。
因此围绕OpenFOAM开发一套前处理工具是有利于其工业应用的。开发的前处理工具应当具有以下基础功能:
-
能够读取一些常见的网格模型文件,并将其转换成OpenFOAM网格类型。 -
能够识别网格中的边界名称及边界类型,并具有编辑名称及类型的功能。 -
具有选择物理模型的功能,并基于所选择的物理模型准备相应的输入文件。 -
具备指定边界条件与初始条件功能。 -
具有计算过程监测功能,能够实时显示残差及物理量监测值。
要实现的核心功能其实只有两个:
-
文件操作功能。包括文件准备、文件内容编辑与保存、文件内容搜索等功能。 -
进程调用功能。主要是调用OpenFOAM的各种工具与求解器。
注:本系列为闲暇项目,目标是开发一个基本能用的OpenFOAM前处理工具。闲暇时间不固定,更新会断断续续。
”
(完)

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








评论前必须登录!
注册