首页/文章/ 详情

七十、Fluent表达式基础实例

1年前浏览3458

1. 表达式介绍

UDF的使用虽然很方便,但入门需要一定的门槛,导致很多同学不敢深入学习。Fluent新的版本提供了表达式Expression功能,能够对UDF进行一定的替代和补充。

 


注:

a. 表达式功能最重要的一点就是量纲要统一,大部分的表达式出现问题,都是量纲问题

b. 很多时候表达式比UDF还要复杂,与其纠结表达式,不如踏实学习UDF

c. 表达式并不是UDF的简化版本,对于缩减操作,表达式有其独有的优势。


2. 表达式案例

本文通过三个案例简单介绍表达式功能的使用。


2.1 案例1:入口速度随时间变化

这个案例看似非常简单,对于UDF来说确实如此,但对于表达式来说可能就比较麻烦。表达式最麻烦的地方就在于量纲要统一。

让模型的入口速度随时间变化,这里设置速度是时间的三角函数的绝对值。我们需要注意的就是要让表达式的量纲统一,这也是大家使用expression经常出错的地方。

 


1. 打开Fluent,导入想要设置的case,这里在文章末尾给大家提供了我所使用的case。由于使用到了时间t,因此必须是瞬态

 

2. 双击Boundary condition,找到需要设置表达式的边界,设置为velocity inlet。

 

双击in边界,在Velocity Magnitude后的下拉列表后面选择expression 

 

选择expression后,可以直接在Enter Expression输入公式。也可以点击后面的f(x),弹出expression窗口输入公式

 

3. Expression窗口


 

简单介绍一下,后面会有文章详细介绍:

①输入公式的文本框

Functions自带的各种函数,包含条件函数Conditional如if、数学公式Mathematical比如绝对值函数、最大最小值函数等。其中的Reduction函数比较难理解,也比较重要。

 

③Variables Fluent中所能输出的物理量,包含压力、温度、速度等

 

④Constants自带的常数,比如PI,气体常数R,自然对数e等

 

Location 模型中的各种区域,包含边界区域和计算域

 

4. 输入速度公式

 

公式中的sin可以直接输入文本sin()表示正弦函数,也可从Functions中选择sin函数。公式中的π需要输入PI或者从Constants中选择PI。


表达式中用t来表示时间,可以直接输入t,也可在Variables中选择t。公式中的绝对值用abs函数表示

按照上面的描述,表达式应该为

abs(sin(200*PI*t))


 

但按照上述公式输入,会发现下面有报错信息,翻译一下:sin函数参数应该是无量纲的或者是角度单位,但现在的公式单位是时间单位s。


也就是说量纲不对,所以我们需要修改量纲,使sin的参数无量纲。如何修改??其实不管那么多强制修改就可以,有s的单位,除以1s就没有单位了

sin(200*PI*t/1[s])

当然还有很多表达方式,只要能保证满足单位要求即可。

sin(200*PI*t*1[s^-1])

sin(200*PI*1[Hz]*t)

注:

a. 表达式的量纲格式为[Pa kg^-3 s],用中括号括起来,指数用^表示;复合单位,单位和单位直接用空格,用*也可以。

b. 修改公式量纲原则:怎么修改都可以,不需要考虑物理意义,只要满足量纲要求就行


按照上述公式输入后,又提示错误

 

错误信息:公式单位错误,需要的公式单位使[m s^-1],但给出的公式单位是[]无量纲。


仍然是量纲问题,虽然我们使sin函数满足无量纲的要求了,但速度公式要求的是m/s的单位,因此需要将公式单位改为m/s。还是有多种方式,比如

sin(200*PI*t*1[s^-1])*1[m/s]

sin(200*PI*t*1[s^-1])*1[m*s^-1]

1[m*s^-1]*sin(200*PI*t*1[s^-1])


按照上面的公式输入后,窗口会变成下图


 

此时不再出现报错信息,同时会出现Primary Independent Variable框,此框用于绘图。Min和max表示自变量的范围,count表示绘图的节点数。



计算验证

把上面的公式输入后,进行计算验证,检测入口速度随时间变化曲线。下面是一个周期的图像


 


2.2 案例2:壁面温度随x轴变化

上面的例子介绍的比较详细,这个例子当作练习,简单说明。

假设壁面温度和x的函数关系为二次函数

Tw=273+30*x+20*x^2


步骤和案例1相同,这里我们只对输入公式进行说明(涉及到温度,需要打开能量方程)


 

在wall边界中,勾选Temperature,点击expression,进入到输入公式界面。


公式说明:Tw=273+30*x+20*x^2

a. 公式中的x表示x轴坐标,可以直接输入x,也可以在Variables中选择x坐标

 

b. 最重要的还是量纲问题,273无量纲,30*x量纲是[m],20*x^2量纲是[m^2]。需要将公式的量纲调整为K。


c. 调整量纲思路:将公式的每一项都变成无量纲,最后统一变成K

(273+30*x/1[m]+20*x^2/1[m^2])*1[K]


 

导入公式后,初始化。查看wall壁面的温度分布


 


2.3 案例3:材料密度为压力和温度的函数

认为空气密度是压力和温度的函数,根据理想气体状态方程可得到

 


其中的R为气体常数,单位为J/(K·mol);M为空气的分子量M=29g/mol


公式说明:

a. 公式中的P和T均为Fluent可以提供的物理量,通过Variables选取即可

 

b. R为气体常数,如果是自己输入的话,是没有单位的;但是Fluent的Constants提供的R包含了单位J/(K·kmol)。

 


c. 按照上面物理量的量纲,M=29kg/kmol。最终公式:

AbsolutePressure*29[kg/kmol]/(StaticTemperature*R)


导入公式后可以画出曲线图


 

回到材料设置界面,单击Change按钮会出现报错信息


 

信息显示密度表达式不能同时是温度和压力的函数,说明Expression的方式还是有局限性。


 





来源:Fluent学习笔记

附件

免费链接.txt
FluentUDF材料Mathematica
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-08-29
最近编辑:1年前
Fluent学习笔记
博士 签名征集中
获赞 122粉丝 312文章 130课程 3
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈