第六节 批处理脚本
1、FLUENT多工况的批处理
1.批处理简要介绍
批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中。批处理文件的扩展名为bat 。批处理程序虽然是在命令行环境中运行,但不仅仅能使用命令行软件,任何当前系统下可运行的程序都可以放在批处理文件中运行。
以利用命令行和批处理脚本打开“计算器”为例,简要介绍操作方法。
- 获取计算器exe路径:%windir%\system32\win32calc.exe(右键计算器、计算器快捷方式等通过属性获取)
- 编写txt文件,完成后改后缀名为bat。此处将其命名为OpenCalc.bat。
cd %windir%\system32\
win32calc.exe
pause
上述代码第一行切换到计算器exe所在的文件位置;第二行打开exe;第三行执行暂停命令,用于暂停批处理的执行器并给出提示信息,然后由用户决定是继续执行还是终端执行。
- 打开OpenCalc.bat。即可看到如下界面:
2.FLUENT多工况CASE文件的准备
在有大量相似算例时,采用批处理的方法读取CASE文件、设置求解器、输出结果将大大节省时间。例如:采用FLUENT计算断面在不同攻角下的三分力/三分力系数。
本节以《第五节 MATLAB处理气动力数据》中的案例,介绍利用批处理计算断面在不同攻角下的三分力系数。
本文中采取的案例如下:
B(桥面宽) | H(高) | b(风嘴伸出长度) | (风嘴角度) | (斜腹板角度) | i(桥面横坡) | 缩尺比 | U风速 | Re雷诺数 |
---|---|---|---|---|---|---|---|---|
46.68 | 5.83 | 1.66 | 63 | 18 | 0.02 | 1:60 | 3.5 | 2E5 |
注:表中长度单位为m,角度单位为°,速度单位为m/s
- 生成多攻角CASE文件
假设需要计算[-5°,-3°,0°,3°,5°]五个攻角下该断面的三分力系数。先利用Profile文件+ChangeAoA.jou,生成相应攻角下的CASE文件。
以下的代码生成正攻角CASE文件的。如需生成负攻角CASE文件,应更改Profile文件。
(
(ro_1deg 2 point)
(time 0 1)
(omega_z -0.017453292 -0.017453292)
)
;;假设Profile文件保存为Profile_1.prof
;;读入CASE文件
file/read-case/CASE1-2.cas
;;写出0°攻角文件
file/write-case/CASE1-2_0deg.cas
;;导入profile文件
file/read-profile/profile_1
;;修改至稳态
define/models/steady
;;打开动网格并设置区域
define/dynamic-mesh/dynamic-mesh? yes no no
define/dynamic-mesh/controls/smoothing? no
define/dynamic-mesh/zones/create mid_in rigid-body ro_1deg no 0 0 0
;;稳态转瞬态,选择时已自动决定transistant formulation
define/models/unsteady-2nd-order yes
;;转一下1°
solve/mesh-motion 1 1 yes 1 no no yes
file/write-case/CASE1_2_1deg.cas
;;执行完转换攻角文件后,会得到计算完成后的CASE1-2_1deg文件。
;;转一下2°
solve/mesh-motion 1 1 yes 1 no no yes
file/write-case/CASE1_2_2deg.cas
;;执行完转换攻角文件后,会得到计算完成后的CASE1-2_2deg文件。
;;转一下3°
solve/mesh-motion 1 1 yes 1 no no yes
file/write-case/CASE1_2_3deg.cas
;;执行完转换攻角文件后,会得到计算完成后的CASE1-2_3deg文件。
;;转一下4°
solve/mesh-motion 1 1 yes 1 no no yes
file/write-case/CASE1_2_4deg.cas
;;执行完转换攻角文件后,会得到计算完成后的CASE1-2_4deg文件。
;;转一下5°
solve/mesh-motion 1 1 yes 1 no no yes
file/write-case/CASE1_2_5deg.cas
;;执行完转换攻角文件后,会得到计算完成后的CASE1-2_5deg文件。
最后得到五个攻角工况下的CASE文件:
CASE1-2_5deg.cas
CASE1-2_3deg.cas
CASE1-2_0deg.cas
CASE1-2_m3deg.cas
CASE1-2_m5deg.cas
- 编写五个攻角工况的Journal文件
五个攻角工况的JJournal文件的求解器设置一致,只是读取CASE文件和输出三分力系数等文件的文件名需要更改。
注:读取CASE文件时和输出三分力系数文件、写出CASE文件时采用绝对路径。
;;读入cas
file/read-case/D:\CASE1-2_5deg.cas
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 稳态计算 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;求解器修改至稳态,目的是在瞬态计算前通过稳态计算将流场初始化
define/models/steady yes
;;选择湍流模型,SST k-ω
define/models/viscous/kw-sst yes
;;定义速度入口条件
;;其中的3.5表示入口速度U,应根据具体情况修改,其他参数可以不修改
define/boundary-conditions/velocity-inlet/inlet yes yes no 3.5 no 0 no 1 no 0 no no yes 1 10
;;定义壁面条件,无滑移壁面
define/boundary-conditions/wall wall no no no no 0 no 0.5
;;关闭动网格
define/dynamic-mesh/dynamic-mesh? no
;;定义残差收敛条件,此时不写出三分力系数文件
solve/monitors/residual/convergence-criteria 1e-4 1e-4 1e-4 1e-4 1e-4
solve/monitors/force/set-drag-monitor cd-1 y wall () y n y 2 n 1 0
solve/monitors/force/set-lift-monitor cl-1 y wall () y n y 3 n 1 0
solve/monitors/force/set-moment-monitor cm-1 y wall () y n y 4 n 0 0 0 0 1
;;设置三分力系数参考变量
;;速度取值参考入口设置
report/reference-values/compute/velocity-inlet inlet
;;投影面积和特征长度设置
report/reference-values area 0.833
report/reference-values/ length 0.833
;;利用速度入口初始化流场
solve/initialize/compute-defaults/velocity-inlet inlet q/initialize-flow
;;建立流场的流动,迭代100步,优化初始化结果
solve/iterate 100
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 瞬态计算 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;定义瞬态求解器
define/models/unsteady-2nd-order yes
solve/set/p-v-coupling 21
;;监视器设置
;;输出阻力、升力、升力矩
solve/monitors/force/monitor-unsteady-iters? no
solve/monitors/force/set-drag-monitor cd-1 y wall () y y D:\cd_mean_5deg y 2 n 1 0
solve/monitors/force/set-lift-monitor cl-1 y wall () y y D:\cl_mean_5deg y 3 n 0 1
;;代码中的-0.04634为形心处位置。注意大攻角时形心位置的变化
solve/monitors/force/set-moment-monitor cm-1 y wall () y y D:\cm_mean_5deg y 4 n 0 -0.04634 0 0 1
;;修改时间求解步长和时间步
solve/set/time-step 1E-4
solve/set/number-of-time-steps 50000
;;求解,每一步内迭代80次
solve/dual-time-iterate 50000 80
;;存储计算完成后CASE和DATA文件
file/write-case-data/D:\CASE1-3_5deg.cas
;;关闭FLUENT
exit
最后得到五个攻角工况下的Journal文件:
CASE1-2_5deg.jou
CASE1-2_3deg.jou
CASE1-2_0deg.jou
CASE1-2_m3deg.jou
CASE1-2_m5deg.jou
3.编写批处理脚本
批处理脚本CASE1.bat
的代码如下,应根据个人实际情况删除、更改或添加。
注:只有Journal文件中有关闭FLUENT的命令exit,-wait才能正常运行,后续的命令才会正常执行。
cd C:\Program Files\ANSYS Inc\v211\fluent\ntbin\win64\
call fluent 2ddp -t16 -g -wait -i D:\CASE1-2_5deg.jou
call fluent 2ddp -t16 -g -wait -i D:\CASE1-2_3deg.jou
call fluent 2ddp -t16 -g -wait -i D:\CASE1-2_0deg.jou
call fluent 2ddp -t16 -g -wait -i D:\CASE1-2_m3deg.jou
call fluent 2ddp -t16 -g -wait -i D:\CASE1-2_m5deg.jou
以上代码的解释为:
- 切换到fluent.exe所在的路径
- 以2D,Double Precision即二维双精度设置启动求解器
- -t16表示并行数为16
- -g表示程序会以任务栏最小化的方式运行
- -wait表示batch后续的命令需要等待FLUENT完成计算后再执行。Journal文件中要有关闭FLUENT的命令exit。
- -i表示读取Journal文件
在CMD窗口运行case1.bat
脚本,可以监控计算情况,并在后台等待其运行完成。
忙完自己的事情后,回来就能看到输出的三分力系数文件啦。
至此,FLUENT批处理的操作介绍完毕。