说明:本文基于 2024R1 版本编写,其他版本在一些细节上可能会有所不同。
在 CFD 仿真中,会涉及到变量定义,如随时间变化的入口流量。
在 Fluent 中,有三种方式定义变量:
相较而言,采用表达式的主要优点在于:
表达式是一个显函数,显式地表示了自变量和对应的因变量之间的关系。其基本定义方式为:A=f(B, C, D…)。其中 A 为因变量,B、C、D 等为对 A 的数值有影响的自变量。在 Fluent 中,自变量可以为空间坐标、时间、流场物理量、材料属性等多种类型。表达式的函数计算包括数学计算(四则运算、指数运算、三角函数、数理统计函数等)和逻辑运算(IF、AND、OR 等逻辑条件)两类。
关于表达式的自变量含义和运算函数详细的语法结构,可参考Fluent帮助文档 user's guide 部分,solution mode 册。
表达式语法和 Excel 中函数运算几乎相同,最主要区别是其单位需要使用方括号 [ ] 进行标记。表达式中所有符号均需要基于英文输入状态进行输入,无法识别中文输入状态的符号,如中文的方括号【】。
很多设置中,其下拉菜单都有表达式选项,可直接输入表达式进行设置。例如,入口速度选择如图所示的表达式选项。
点击 f(x) 按钮,打开表达式编辑页面输入表达式。在编辑界面的右侧是当前支持的各类自变量类型。
根据表达式的形式,其结果可能为一个数值,也可能是函数。
部分设置中,其下拉菜单无表达式选项,则不支持基于表达式进行定义。如图所示的汽蚀机理设置中,蒸汽压无法使用表达式进行定义,但可使用 UDF 定义。
所有基于整数的设置(如迭代次数),只能手动输入数值,不支持将其设置为变量。
对于常用表达式,可使用命名表达式的方式将其进行封装,直接进行调用即可。如图所示,在界面上鼠标右键,点击新建一个命名表达式。
在弹出的界面上,输入表达式并进行命名。
在需要调用的地方,可直接作为已封装函数进行调用,无需额外的编写处理。
对于已编写完成的命名表达式,也可被其他命名表达式调用。
某些仿真结果数据是物理量之间的函数运算,例如机翼升阻比、阀门压力损失等。可在报告定义中采用表达式方法获取这类数据。
创建过程中,可调用其他已设置的报告和命名表达式。如下图所示的功率数据,其中力矩是已设置的报告,角速度是已设置的命名表达式,均可直接进行调用。
通过命名表达式的方式可自定义物理场。如图所示,定义了速度在XY平面上的投影值。
在后处理中,可直接绘制基于此表达式自定义物理场的分布。
表达式可以支持同一量纲的多种单位,程序后台会自动且强制地转换为国际单位制。
如下图,km/h 也是速度单位,可以被正确的使用,求解过程中会自动转换为基于 m/s 的数值。
若表达式定义了函数关系,必须注意量纲问题。对于加减运算,加减符号的两侧必须量纲相同,如下图所示。
若加号两侧的量纲不同,则表达式报错,提示符号两侧量纲不同,其如下图所示。
对于三角、指数等更复杂的函数关系,建议先对涉及的物理量无量纲化后进行函数运算,再统一处理量纲问题。
例如入口速度和时间的函数关系为:v=sin(t)+2 ,其直接输入会报错。提示正弦函数的运算对象必须为无量纲数或者以角度为单位。
上述修改,可先对时间进行无量纲化处理,最后统一乘以 1 [m/s] 以获得速度单位。
对于命名表达式,必须要未被调用才可进行重命名。如图所示,表达式已被调用,因此命名框部分为灰色,无法重命名。
基于命名表达式定义输入参数时,表达式必须为常数形式。
若使用运算关系,则提示如下图所示报错信息。
若需要定义输出参数,仅需要在对应的报告中勾选 “create output parameter” 选项即可,无需额外设置。