本文简单介绍利用simFlow进行OpenFOAM前处理的一些思路。
simFlow是一款利用OpenFOAM作为求解器的CFD软件,其提供了良好的GUI接口,实现了几何导入、网格生成、求解计算及计算后处理等CFD完整流程。官网地址:https://sim-flow.com/。
SimFlow提供了三种类型的版本:免费体验版、专业版以及企业版。
免费版与商业版的比较如下图所示。免费版在功能上与商业版是相同的,只不过其限制最大网格节点数为20万(注意是节点数,网格单元数量还要更少一些),同时最多支持2个CPU计算,网格划分的时候也只能使用串行处理,没有售后支持。
注:免费版其他的都可以忍,不过20万节点数实在是太少了。ANSYS Fluent学生版的限制是512000个网格/节点,是这个的两倍多。20万网格做个2D演示模型都不是很够。
”
再看看价格。专业版每年7500美刀,对机构来说也许不贵,但对于个人来讲还是有点贵(关键是按年计费,算起来并不比Fluent之类的软件划算)。
瞅啥呢。靠CFD一年都未必能赚到7500刀,再说这货又不是神器。
”
不过介于OpenFOAM的文本参数输入形式,我觉得这软件的免费版应该还是有一些东西可以挖掘的。先找个官方案例来体验一波(官方案例网址:https://sim-flow.com/tutorials/car/)。
1 simFlow案例
此案例是simFlow官网上提供的一个汽车外流场计算案例,过程描述极其详细。
1.1 创建Case
启动simFlow,按下图所示顺序创建case
1.2 导入几何
-
按下图所示顺序导入几何模型
simFlow支持的文件类型包括STL、OBJ、STP、IGS、BREP以及DAT。基本上能满足需求。
模型导入后如下图所示。
1.3 指定网格尺寸
由于免费版simFlow对于网格尺寸的控制,这里需要控制网格节点数小于20万。
-
进入Hex Meshing → Geometry,按下图顺序指定参数
-
进入Base选项卡,按下图顺序指定参数
-
按下图所示操作为边界命名,并修改边界类型
-
进入Point选项卡指定材料点的位置
-
进入Mesh选项卡,生成计算网格
注:这一套操作猛如虎,地球人都能看得出来使用的是snappyHexMesh。
”
生成网格如下图所示。
查看车身网格,如下图所示。
1.4 选择求解器
-
如下图所示选择SIMPLE求解器,后面求解时调用simpleFoam进行计算
注:这一波求解器过滤做得很不错。CFD工具箱小程序里头的OF求解器选择工具就是参考这个来的。不知道该选用什么哪个求解器,可以试试这个。
”
1.5 选择湍流模型
-
选择使用SST k-omega湍流模型
1.6 设置边界条件
-
指定bottom边界条件参数,如下图所示
-
指定inlet边界速度为20 m/s
-
指定inlet边界的湍流参数
-
指定right边界的流动参数
-
指定right边界的湍流参数
-
指定top边界的流动参数
-
指定top边界的湍流参数
1.7 Monitors设置
-
指定监测车身car-body上的力
1.8 求解计算
-
设置迭代计算200步
注:这里可以不用计算,只需要保存case文件即可。
”
-
计算监测的力曲线
1.9 后处理
-
通过下面的操作顺序进入后处理
这里还可以选择将OF计算的结果导出为其他格式的文件,如Fluent、Ensight、Tecplot、FieldView、VTK等。
-
查看速度分布
-
换其他的颜色显示速度,如下图所示
simFlow的任务到此结束。
2 文件路径分析
simFlow执行完毕后,下面来分析一下case文件夹中的文件组织结构。
文件组织结构如下图所示,看着是不是很熟悉,与常规的OpenFOAM文件组织结构是相同的。
-
删掉下图中红色框选的文件及文件夹,这些文件在OpenFOAM计算时用不上
-
0文件夹中的文件如下图所示
-
constant文件夹中的组织结构如下图所示,删除红色框中的文件及文件夹
注:删除的文件与文件夹是simFlow生成的。
”
-
system文件夹中组织结构如下图所示,删除红色框选的文件
此时若想要调整网格尺寸,可修改文件blockMeshDict与snappyHexMeshDict中与网格尺寸相关的控制参数。修改完毕后可将文件拷贝到OpenFOAM的工作路径下,运行以下命令进行计算。
注:这里是在windows系统下,若是在Linux系统下,不需要改变路径。
”
cd car
blockMesh
snappyHexMesh
simpleFoam
2.1 问题1
这里很奇怪,在利用snappyHexMesh生成网格时,自动创建了名称为1和2的文件夹,直接计算会提示在2文件夹中找不到p文件,此时将0文件夹中的所有文件拷贝到2文件夹,问题解决。
计算结果如下图所示。
2.2 问题2
这里还有个问题需要解决。在controlDict文件中为了监测汽车上的力,利用到了一些dll文件,如果是在Linux系统中计算,则需要修改为so文件。
2.3 网格尺寸
simFlow免费版最大的问题在于无法处理多于20万节点的计算网格。这里可以有两种思路:
-
采用外部网格生成工具产生计算网格,然后直接转化为OpenFOAM网格 -
修改网格控制文件中的参数
这里简单描述第2种方式。在本案例中网格参数主要存在于文件blockMeshDict及snappyHexMeshDict中。
blockMeshDict文件中控制网格尺寸的参数在下图中框选位置,可以通过调整修改**(50 12 20)**来控制全局中x,y,z三方向网格数量。
snappyHexMeshDict文件中可以调整的参数如下图所示。本案例只是对car_body进行了局部加密。(3 5)表示最小加密3,最大加密5,调整加密层数可以改变网格该边界上的网格分布。
参数修改完毕后再执行命令blockMesh及snappyHexMesh重新生成网格,此时脱离了simFlow,再不受网格限制了。
至于用外部网格生成工具,那就更简单了,但有一点需要注意,一定要确保边界名称与0文件夹中各边界的名称保持一致,否则就需要进行文件修改。
本文仅仅只是一种思路而已,有钱人还是建议购买simFlow的专业版,对于机构更是如此,花不了多少钱。
很奇怪,这种仅仅前端的开发应该没什么难度啊,国内那些自主开发工业软件的企业怎么就不见动静呢,大多数工业场景利用OpenFOAM的标准求解器实际上已经够用了,开发一个好用的前端GUI应该是事倍功半的事情啊。CFDSupport最近将他们的TCFD改成了TCAE,走的其实也是这种路子。我觉得国内的那些声称自主开发工业软件的公司不妨学习一下这种思路,先把生态建立起来,后面再慢慢改进求解器也不错啊。
有时间我也来整一个,一天到晚地显摆但就是不卖!我仿佛看到了一条发家致富的通天大道,哇咔咔咔~~
本篇文章来源于微信公众号: CFD之道
评论前必须登录!
注册