第二节 FLUENT计算断面三分力系数
1、FLUENT TUI介绍
Fluent 文本用户界面(TUI)提供通过Text Command命令设置求解器的操作。TUI的语法可以在TUI COMMAND文档中进行学习。
TUI命令行的操作有以下优点:
- 编写速度较快,参数调整方便
- 形成journal文件(.JOU),求解器读取方便
- 可以实现JOU文件批处理,计算多工况
上图展示了TUI输入界面,和JOU文件的读入操作。
TUI命令行的语法类似于“提问”与“回答”,根据需要设置的参数提出的问题做出回应。回应与回应之间以空格隔开。
以设置阻力监控器为例子介绍语法结构。
solve/monitors/force/set-drag-monitor cd-1 y wall () y n y 2 n 1 0
上述语法的意思指的是进入到设置中:
- 监控器的名字 设置为 cd-1
- 是否监控无量纲系数而非阻力 设置为 yes
- 壁面的名称或ID号 wall
- ()表示跳过进入下一指令,不同的设置跳过的用到的符号不同
- 打印数据到屏幕 设置为yes
- 写出数据到文件 设置为no
- 数据在屏幕上画图 设置为yes
- 画图窗口编号 设置为 2
- 是否呈现每个网格区域 设置为no
- 阻力的方向向量的x分量 设置为1
- 阻力的方向向量的y分量 设置为0
至此符合用户要求的阻力系数监控器设置完成。
2 、预处理文件(Pretreatment.jou)
1.预处理文件的目的
预处理是在POINTWISE输出CASE文件后,设置并运行求解器之前操作。该操作主要是为:
- 进行模型的缩尺,减小文件大小(实际上可以不缩尺,但是会影响受库朗数控制的时间步长取值)
- Interface界面对的建立(流固耦合界面包含其中)
- 提高网格质量
2.预处理文件代码
;;Pretreatment.jou文件
;;假设POINTWISE导出的CASE文件名称为CASE1.cas
;;按照区域赋予网格不同的颜色,可以不执行
display/set/colors/color-by-type? no
;;按照几何缩尺比将模型缩尺,此处模型缩尺比为1:60。此处修改
mesh/scale 0.01667 0.01667
;;Interface界面对的建立,界面的名称在POINTWISE模板中定义。此处不用修改
/define/mesh-interfaces/create/if interface_in () interface_out () no no no no no
/define/mesh-interfaces/create/left left_l () left_r () no no no no yes
/define/mesh-interfaces/create/right right_l () right_r () no no no no yes
;;提高网格质量
/mesh/repair-improve/improve-quality
;;写出为新的CASE文件。此处修改
file/write-case/CASE1—2.cas
;;执行完预处理文件后,会得到几何缩尺过的CASE1-2文件。
3、 静力三分力计算文件(Static.jou)
本节介绍的静力三分力计算设置适用于大部分情况,只需要修改少量参数即可完成设置。为完成不同的计算目的,部分代码应根据个人需求进行编写与补充。
1.Journal文件的功能组成
为实现计算流体流过固体表面这种特定的流动状态,需要在FLUENT求解器中详细设置各个功能的开启与关闭状态,并且小心仔细地决定每个参数的取值。实现上述流动状态的Journal文件需要由以下几个功能块:
- 读入CASE文件(.cas)和DATA文件(.dat)
- 设置稳态或瞬态求解器
- 选择湍流模型
- 设置速度入口流动、壁面边界、压力出口流动等边界条件
- 设置动网格启动状态与参数
- 设置三分力系数的参考变量,如$U、B$等
- 设置力或者系数的监控器
- 初始化流场
- 如果为稳态计算,设置稳态的迭代步数;如果为瞬态计算,设置瞬态计算的时间步长和总步数
- [可选]存储计算完成后的CASE文件和DATA文件
2.静力三分力计算文件代码
注:以下代码中的第一句读取文件,file/read-case/CASE1-2.cas,读取的是相对路径中的CASE文件。需要Journal文件与CASE文件在同一路径下。如不是,则读取文件代码需要改成绝对路径。如:file/read-case/D:\CASE1-2.cas。之后的读取文件代码均为相对路径,不再解释。
;;读入cas
file/read-case/CASE1-2.cas
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 稳态计算 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;求解器修改至稳态,目的是在瞬态计算前通过稳态计算将流场初始化
define/models/steady yes
;;选择湍流模型,SST k-ω
define/models/viscous/kw-sst yes
;;定义速度入口条件
;;其中的888表示入口速度U,应根据具体情况修改,其他参数可以不修改
define/boundary-conditions/velocity-inlet/inlet yes yes no 888 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 cd_mean y 2 n 1 0
solve/monitors/force/set-lift-monitor cl-1 y wall () y y cl_mean y 3 n 0 1
;;代码中的-0.04634为形心处位置
solve/monitors/force/set-moment-monitor cm-1 y wall () y y cm_mean 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/CASE1-3.cas
;;执行完静力三分力计算文件后,会得到计算完成后的CASE1-3文件。
;;CASE1-3文件流场得到了充分的发展,可以作为之后动网格计算的初始化数据使用。
下图为示例断面计算得到的三分力系数曲线图(从左至右分别为阻力系数、升力系数、升力矩系数)。横坐标为时间,单位为秒。
4、转换攻角文件(Profile文件+ChangeAoA.jou)
因为在POINTWISE中固体断面是以0°攻角导入并进行网格划分,因此上述计算流程得到的结果在0°攻角条件下。
为计算其他攻角下的静力三分力数据,在FLUENT中通过Profile文件定义固体断面的运动,调整网格中的圆形区域,可使断面的攻角发生变化。
1.Profile文件
在FLUENT中指定部件运动主要有两种方式:profile文件和UDF宏文件。当运动方程已知时,一般利用UDF宏指定运动;而当需要指定的运动无任何函数关系的情况,profile方法更适合。
2.转换攻角Profile文件代码
(
(ro_1deg 2 point)
(time 0 1)
(omega_z -0.017453292 -0.017453292)
)
上述代码描述了:
- profile文件名为ro_1deg,即旋转1°攻角的profile文件
- 2 point表示由两点即可描述固体断面的运动
- time从0~1,z方向角速度从-0.017(1°对应的弧度制)变化到-0.017(1°对应的弧度制)
- 负数表示迎风抬头,正数表示迎风低头
3.转换攻角文件代码
;;假设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_ndeg no 0 0 0
;;稳态转瞬态,选择时已自动决定transistant formulation
define/models/unsteady-2nd-order yes
;;转一下n°,n为profile文件中定义的度数
solve/mesh-motion 1 1 yes 1 no no yes
;;写出CASE文件
file/write-case/CASE1_2_ndeg.cas
;;执行完转换攻角文件后,会得到计算完成后的CASE1-2_ndeg文件。
下图为旋转100°后的断面网格划分情况:
转换攻角文件+静力三分力计算文件可以通过批处理的方式运行,从而达到自动化进行多攻角的断面三分力系数计算。