首页/文章/ 详情

Fluent的表达式应用 - Version 2

1年前浏览5765

1 简介

在CFD仿真中,难免会涉及到各类变量,例如随温度变化的流体粘度、随时间变化的入口流量等。这类变量很多时候都需要使用函数关系式表示。
在FLUENT中,有三种方式处理变量:
  • 表达式(Expression)。表达式是Fluent内置的功能,相对直观简单,更加易学易用。与此同时,表达式存储在Fluent的CAS文件中,不需要其他文件

  • UDF(User-Defined Function,用户自定义函数)。UDF是C语言代码,可应用于所有需要指定的参数,也支持所有C语言支持的数学运算,但其编写和读取较表达式方法更复杂。UDF代码保存在C语言代码文件中,独立于Fluent的CAS文件。

  • Profile(目前无公认翻译,根据其内容和作用,可译为数据表)。数据表中存储着物理量随空间坐标和时间的变化关系,功能上仅适用于定义边界条件和计算域参数,不能处理其他问题(材料属性、时间步长、物理机理等)。数据表保存在独立的表格文件中,可使用Excel等软件读取和编辑。


相较而言,采用表达式的主要优点在于:

  • 定义方式简单明了,且可视化

  • 不引入额外文件,方便管理

  • 兼容性强,Fluent版本升级和操作系统环境改变后无需额外处理


表达式是一个显函数,显式地表示了自变量和对应的因变量之间的关系。其基本定义方式为:A=f(B, C, D…),其中A为因变量,B、C、D等为对A的数值有影响的自变量。在Fluent中,自变量可以为空间坐标、物理时间、几何参数、流场物理量等多种类型。表达式的函数计算,包括数学计算(四则运算、指数运算、三角函数、数理统计函数等)和逻辑运算(IF、AND、OR等逻辑条件)。
表达式语法和Excel中函数运算几乎相同,学习门槛几乎为0。关于表达式的自变量含义和运算函数详细的语法结构,可参考Fluent帮助文档。

2 应用

2.1 直接使用表达式

对于很多参数,其数值设置页面下拉菜单都有表达式选项。这些参数的设置可以直接输入表达式进行设置。
入口速度选择如图所示的表达式选项:

点击f(x)按钮,打开表达式编辑页面输入表达式。当输入的表达式正确,软件会对数值进行计算或根据函数的计算关系进行绘图。

根据表达式计算的数值 


 基于表达式的函数关系绘制曲线


2.2 命名表达式(Named Expression)

对于一些常用但是编写很复杂的表达式,Fluent中可以使用命名表达式的方式将其进行封装,直接进行调用即可。
如图所示,在界面上鼠标右键,点击新建一个命名表达式。


在弹出的界面上,输入待封装的函数,并对函数进行命名。其界面和表达式编写规范和直接输入表达式相同。


在需要调用的地方,可直接作为已封装函数进行调用,无需额外的编写处理。


2.3 表达式中单位制的处理

表达式可以支持多种单位类型,程序后台会自动且强制地转换为国际单位制。如下图,km/h 也是速度单位,可以被正确的使用,求解过程中会自动转换为基于 m/s 的数值。


实际运用中,难免会碰到三角、指数等难以评估量纲的函数关系,量纲问题会提示错误。如下图,使用表达式方法定义流体粘度,粘度和应变率之间函数关系为 y=x^(-0.52),表达式报错。原因在于,应变率单位为 1/s,如图输入的表达式运算结果的量纲不是粘度单位 Pa*s。


对此,可以先对输入的物理量进行无量纲化处理,变成 (StrainRate/1[s^-1]),最后对无量纲的指数运算结果乘以 1 [Pa s],以加入量纲。


2.4 获取结果数据

某些仿真数据是物理量之间的函数运算,例如机翼升阻比、阀门压力损失等。可在report definiton中采用表达式方法获取这类数据。


创建过程中,可调用其他已设置的report definition。如下图所示的升阻比数据,其中升力和阻力均是已设置的report definition,类似于命名表达式一样,可直接进行调用。

来源:驭风之道
FluentUDF材料
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-04-07
最近编辑:1年前
驭风之道
硕士 | ANSYS流体技术... 签名征集中
获赞 81粉丝 142文章 71课程 3
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈