Fluent的表达式应用 - Version 2
1 简介
在CFD仿真中,难免会涉及到各类变量,例如随温度变化的流体粘度、随时间变化的入口流量等。这类变量很多时候都需要使用函数关系式表示。表达式(Expression)。表达式是Fluent内置的功能,相对直观简单,更加易学易用。与此同时,表达式存储在Fluent的CAS文件中,不需要其他文件
UDF(User-Defined Function,用户自定义函数)。UDF是C语言代码,可应用于所有需要指定的参数,也支持所有C语言支持的数学运算,但其编写和读取较表达式方法更复杂。UDF代码保存在C语言代码文件中,独立于Fluent的CAS文件。
Profile(目前无公认翻译,根据其内容和作用,可译为数据表)。数据表中存储着物理量随空间坐标和时间的变化关系,功能上仅适用于定义边界条件和计算域参数,不能处理其他问题(材料属性、时间步长、物理机理等)。数据表保存在独立的表格文件中,可使用Excel等软件读取和编辑。
相较而言,采用表达式的主要优点在于:
表达式是一个显函数,显式地表示了自变量和对应的因变量之间的关系。其基本定义方式为:A=f(B, C, D…),其中A为因变量,B、C、D等为对A的数值有影响的自变量。在Fluent中,自变量可以为空间坐标、物理时间、几何参数、流场物理量等多种类型。表达式的函数计算,包括数学计算(四则运算、指数运算、三角函数、数理统计函数等)和逻辑运算(IF、AND、OR等逻辑条件)。表达式语法和Excel中函数运算几乎相同,学习门槛几乎为0。关于表达式的自变量含义和运算函数详细的语法结构,可参考Fluent帮助文档。2 应用
2.1 直接使用表达式
对于很多参数,其数值设置页面下拉菜单都有表达式选项。这些参数的设置可以直接输入表达式进行设置。![](https://public.fangzhenxiu.com/fixComment/commentContent/imgs/1680834980085_b4cesp.jpg?imageView2/0)
点击f(x)按钮,打开表达式编辑页面输入表达式。当输入的表达式正确,软件会对数值进行计算或根据函数的计算关系进行绘图。![](https://public.fangzhenxiu.com/fixComment/commentContent/imgs/1680834980982_wviojs.jpg?imageView2/0)
根据表达式计算的数值
![](https://public.fangzhenxiu.com/fixComment/commentContent/imgs/1680834979339_6jrv3j.jpg?imageView2/0)
基于表达式的函数关系绘制曲线
2.2 命名表达式(Named Expression)
对于一些常用但是编写很复杂的表达式,Fluent中可以使用命名表达式的方式将其进行封装,直接进行调用即可。如图所示,在界面上鼠标右键,点击新建一个命名表达式。![](https://public.fangzhenxiu.com/fixComment/commentContent/imgs/1680834977321_jeo8ur.jpg?imageView2/0)
在弹出的界面上,输入待封装的函数,并对函数进行命名。其界面和表达式编写规范和直接输入表达式相同。![](https://public.fangzhenxiu.com/fixComment/commentContent/imgs/1680834981383_43lyd9.jpg?imageView2/0)
在需要调用的地方,可直接作为已封装函数进行调用,无需额外的编写处理。![](https://public.fangzhenxiu.com/fixComment/commentContent/imgs/1680834978064_s8wcw5.jpg?imageView2/0)
2.3 表达式中单位制的处理
表达式可以支持多种单位类型,程序后台会自动且强制地转换为国际单位制。如下图,km/h 也是速度单位,可以被正确的使用,求解过程中会自动转换为基于 m/s 的数值。![](https://public.fangzhenxiu.com/fixComment/commentContent/imgs/1680834978810_sbqsc4.jpg?imageView2/0)
实际运用中,难免会碰到三角、指数等难以评估量纲的函数关系,量纲问题会提示错误。如下图,使用表达式方法定义流体粘度,粘度和应变率之间函数关系为 y=x^(-0.52),表达式报错。原因在于,应变率单位为 1/s,如图输入的表达式运算结果的量纲不是粘度单位 Pa*s。
![](https://public.fangzhenxiu.com/fixComment/commentContent/imgs/1680834981790_brpt7y.jpg?imageView2/0)
对此,可以先对输入的物理量进行无量纲化处理,变成 (StrainRate/1[s^-1]),最后对无量纲的指数运算结果乘以 1 [Pa s],以加入量纲。![](https://public.fangzhenxiu.com/fixComment/commentContent/imgs/1680834980574_baz7u6.jpg?imageView2/0)
2.4 获取结果数据
某些仿真数据是物理量之间的函数运算,例如机翼升阻比、阀门压力损失等。可在report definiton中采用表达式方法获取这类数据。![](https://public.fangzhenxiu.com/fixComment/commentContent/imgs/1680834978451_7ag4is.jpg?imageView2/0)
创建过程中,可调用其他已设置的report definition。如下图所示的升阻比数据,其中升力和阻力均是已设置的report definition,类似于命名表达式一样,可直接进行调用。![](https://public.fangzhenxiu.com/fixComment/commentContent/imgs/1680834979730_jj1o03.jpg?imageView2/0)