首页/文章/ 详情

开发OpenFOAM前处理器|01 开发目标

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

OpenFOAM是个优秀的CFD开源库,人们可以利用OpenFOAM开发专属的CFD求解器,也可以很方便地基于OpenFOAM验证自己开发的CFD算法,近些年来,OpenFOAM在学术界得到了CFD研究者越来越广泛的关注。然而在工业界,OpenFOAM虽说有一些应用,但和其在学术界的地位相比,仍可将其置为非主流一类。究其原因,基本可以归为以下几类:

  1. 与学术研究领域侧重于计算精度不同,工业应用更加侧重于效率与鲁棒性。而这恰恰是OpenFOAM相较于商业CFD软件的劣势所在。OpenFOAM目前缺乏完善且高效的GUI界面,算例准备仍然采用编辑文本输入文件的形式,在准备案例的过程中,用户需要输入大量硬编码的关键字,这严重影响了案例文件的准备效率。例如在设置案例时,需要指定某边界的速度值,按照正常操作逻辑,应该是选择某边界,然后直接输入其速度值和速度方向即可。然而在文件式case中,用户需要输入一长串代码文本,更麻烦的是如果输入文本存在错误,在编辑的过程中无法直接发现这些错误,它们只能在求解器运行时才会被发现,这非常不利于案例调试。
  2. OpenFOAM可以借助于blockMesh与snappyHexMesh生成计算网格,然而blockMesh一般只用于较为简单且规则的几何模型,而snappyHexMesh虽说可以针对较为复杂的模型,但想要获取高质量的计算网格,其输入文件准备仍然非常繁琐。在实际工业应用中,可能需要借助于第三方网格工具生成计算网格。好在OpenFOAM有非常完善的网格导入接口,可以兼容大部分主流的流体网格格式。虽然应用问题可以解决,但借助于第三方工具无疑会增加成本。这与选择OpenFOAM的初衷不符,起初之所以选择OpenFOAM,大部分的原因还是因为看中它的开源免费。
  3. 工程应用比较看重稳定性。很多情况下不太精确的结果要比没有结果强得多。我们希望有一套默认参数可以在大多数情况下能够很好的工作,而不是以精度为借口的发散退出。然而遗憾的是OpenFOAM官方并没有提供这种默认的参数组合。OpenFOAM提供了大量的Tutorials用于展示OpenFOAM的功能特性,然而官方也明确说明了这些Tutorials中的参数设置并非是最优的参数组合,用户在使用的过程中需要对多种参数组合进行比较,从中选出最适合当前案例的参数设置。这实际上是给应用难度增加了一道门槛,就像是我只是想要用菜刀切个菜,你却让我去学热处理一样。最主要的是OpenFOAM中需要设置的参数还真不少,组合选优并不是一件轻松的事情。

因此围绕OpenFOAM开发一套前处理工具是有利于其工业应用的。开发的前处理工具应当具有以下基础功能:

  1. 能够读取一些常见的网格模型文件,并将其转换成OpenFOAM网格类型。
  2. 能够识别网格中的边界名称及边界类型,并具有编辑名称及类型的功能。
  3. 具有选择物理模型的功能,并基于所选择的物理模型准备相应的输入文件。
  4. 具备指定边界条件与初始条件功能。
  5. 具有计算过程监测功能,能够实时显示残差及物理量监测值。

要实现的核心功能其实只有两个:

  1. 文件操作功能。包括文件准备、文件内容编辑与保存、文件内容搜索等功能。
  2. 进程调用功能。主要是调用OpenFOAM的各种工具与求解器。
 

注:本系列为闲暇项目,目标是开发一个基本能用的OpenFOAM前处理工具。闲暇时间不固定,更新会断断续续。


来源:CFD之道
OpenFOAM
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-11-13
最近编辑:1天前
CFD之道
博士 | 教师 探讨CFD职场生活,闲谈CFD里外
获赞 2671粉丝 12259文章 867课程 27
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈