背景
由于想偷懒,不想一直呆在电脑前一个一个跑数据,想吃饭,想睡觉,于是探究如何使用fluent来批量计算。
调研
首先参考了知乎文章,如下,在这篇文章中主要进行了环境配置。Fluent批量计算工作 - 知乎使用Fluent计算大量case的时候,通过.jou文件和.bat文件进行自动化的计算,往往可以极大地增加效率。本文参考了下面的文章,主要需要强调的是环境变量的设置和start journal步骤的详细说明,前文中这块可能涉及较…https://zhuanlan.zhihu.com/p/257026878随后开始跟着该教程录制journal文件。由于我是机械小白,没有怎么用过fluent,就又现学,现建了一个模型。随后在打开fluent的时候才开始录制。
- 此时需要注意,journal文件的保存名称要加.jou,不能不加,不然文件格式不对。
录制结束,打开journal文件,进行一些参数的更改后,开始执行命令行。
- 命令行:就是直接在计算机终端上进行操作。
- 打开方式1:windows+r —— 输入cmd,回车 —— 输入命令行语句
- 打开方式2:直接在导航框中搜索cmd,回车 —— 输入命令行语句
命令行语句:fluent 2ddp或3ddp -hidden -t 8 -i "文件夹路径\*.jou"
- 2ddp - 二维模型使用
- 3ddp - 三维模型使用
- -hidden 不用打开fluent界面进行运算
- -t8 8线程运行
- 文件夹路径\文件名.jou
测试
开始执行命令行语句。刚开始按照完整语句进行,发现会出现终端光标不动,看不到进展到哪一步了。于是去掉hidden,直接打开界面看控制板。于是发现会有报错,找不到节点,对象出错。
Error: cx-name-to-id: cannot find widget: Error Object: "Multiphase Model*Frame1"
通过各种途径找解决方法,也没有解答,果断放弃,另寻教程。
跟着up主走了一遍流程,想到如果直接把mesh文件导入进去呢?又开始进行mesh文件的导出,其中mesh文件要导出的文件格式为csgn。
成功实现的主要步骤:
- 打开fluent界面
- 录制journal文件 write - journal script
- 导入先前到处的mesh文件 import - csgn - mesh
- 进行一系列所需要的参数设置,可以不精确,只是为了让journal记录,随后可以更改。
- 初始化、计算、导出case文件
- 再次导入需要计算的网格模型(可以一致可以不一致)
- 结束录制
- 关闭fluent界面
打开journal文件,对相关参数进行精确更改。写完一个case,复制粘贴第二个case(需要更改相关参数和文件保存名字)以此类推。保存,命令行,成功。
尝试hidden是否成功,输入完整命令行,观察case存储位置,是否会有内容生成,有生成即成功。
优化
①按照最开始对-t8的理解,应该就是一次可以执行8个case,尝试过后发现9个case也可以跑。
于是把-t8语句删掉,发现对效果来说丝毫没有影响
②考虑不同csgn文件,存入到不同的路径下。
想到的方法:A. 把需要用到的网格都放在一个路径下,这样就可以直接在journal文件中通过更改文件名称,来更改导入csgn文件内容。然后存放的路径相同,通过更改名称,随后再把导出的case文件进行分类。
B. 在录制journal文件的时候,就可以对不同路径下的文件进行操作,让journal记录下来,方便随后在journal中直接进行调用。以及存放路径也是。可以操作一个存放不同路径的语句,随后在journal文件中进行修改。(该方法需要一些有语言基础的人进行操作)
③在journal文件中有很多重复内容,学习如何和c语言一样可以直接放入一个库函数进行调用。
参考文章:
如何使用Fluent批量运行算例 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/46440371使用场景1:使用类似于库函数的语句,把重复过多的语句全部存放进一个新的.jou文件,再进行调用。
(ti-menu-load-string(format #f "/file/read-journal 文件夹路径\*.jou"))
使用场景2: 把多个.jou文件存放在.scm文件中,再在fluent中读取.scm文件执行。
(format #f "/file/read-journal D:\jialunliu\Desktop\CFD_Temp\Re_6E6_KWSST_AOA00.jou"))
(ti-menu-load-string(format #f "/file/read-journal D:\jialunliu\Desktop\CFD_Temp\Re_6E6_KWSST_AOA05.jou"))
(ti-menu-load-string(format #f "/file/read-journal D:\jialunliu\Desktop\CFD_Temp\Re_6E6_KWSST_AOA10.jou"))
(ti-menu-load-string(format #f "/file/read-journal D:\jialunliu\Desktop\CFD_Temp\Re_6E6_KWSST_AOA15.jou"))
(ti-menu-load-string(format #f "/file/read-journal D:\jialunliu\Desktop\CFD_Temp\Re_6E6_KWSST_AOA20.jou"))
(ti-menu-load-string(format #f "/file/read-journal D:\jialunliu\Desktop\CFD_Temp\Re_6E6_KWSST_AOA25.jou"))
不过这个有一个问题就是需要打开界面进行操作。