七十、Fluent表达式基础实例

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表达式基础实例a. 表达式功能最重要的一点就是量纲要统一,大部分的表达式出现问题,都是量纲问题\x0d\x0ab. 很多时候表达式比UDF还要复杂,与其纠结表达式,不如踏实学习UDF\x0d\x0ac. 表达式并不是UDF的简化版本,对于缩减操作,表达式有其独有的优势。icon-default.png?t=N7T8https://mp.weixin.qq.com/s/n0pCYOLafrnQ0i9fqTbz7Q

  • 22
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值