首页/文章/ 详情

【CFD小贴士】Fluent 活用Expression功能事半功倍

22天前浏览281

引子

表达式(expression)是Fluent在2019版本重磅推出的新功能,一直以来很多的Fluent使用者吐槽:简单的函数型边界条件或者一些源项也要使用UDF,而UDF的学习曲线又比较陡峭,因此让人诟病颇深(尤其小白)。
让人们等待已久的表达式功能终于在2019版本隆重推出,没想到一推出它的功能就已经强大如斯,几乎可以胜任绝大部分的边界条件和一些源项的定义,而且学习曲线比较平缓入手极为快速。不得不说这是Fluent近年来最注重用户体验的一项改进了。
下面我们就来扒一扒expression的使用技巧。

1.首先什么是表达式

• 默认情况下,为边界条件或cell zone 输入的值在整个边界或者 cellzone上是一致的

使用Fluent中的表达式,可以将这些值作为空间、时间、迭代次数和解变量的函数输入

               –例如,入口温度可以定义为出口加权平均压力的函数

表达式还有其他用途,这一篇的重点是边界条件和 cellzone 条件中表达式的          用法

2.使用表达式定义边界条件和Cell Zone 条件

1.打开边界条件面板并选择expression

2.在表达式输入面板书写表达式,可以从右边菜单中选择变量/函数

Expressions 可以直接在entryfield 中输入

Expressions 也可以通过模型树的Named Expressions创建

Named expressions 可以在entry field 使用

Example1:位置相关的边界 profile 设置
给出入口处的速度分布作为如下Y坐标的函数

注意,单位要匹配!


Example2 :时间相关的边界 profile 设置
给出入口的速度分布作为时间的函数

注意,单位要匹配!

Example3: 源项
1.Energy source term 单位必须为W/m3
2.Total power (W) 通常是已知的,然而W/m3 要求你知道热源的体积然后被                     TotalPower相除,结果通常是一个具有多位有效数字的值

3.使用表达式,输入总瓦特数并除以一个自动计算的体积(热源体积未知可直接使用volume表达式获取如下图)


3.Fluent的表达式语言(即书写格式)

表达式是一个字符串,表示值、变量、操作符和函数调用的组合
表达式返回一个值,该值具有单位(或无量纲)
–  例如:5.0 [m/s] * exp((-t-0.3 [s]) / 2.8 [s]) 
§这个表达式最终单位为m/s
§表达式的单位必须与 input field 的单位一致(极其重要)
例如不能用5* t表示速度因为它的单位是s,而不是m/s
§单位必须一致

o 1[cm] * TotalPressure是不允许的,因为厘米不是压强的单位

o Unitsystems可以混合使用,例如1[atm] + 200 [Pa]是允许的,因为它们                    都是压力单位

4.函数的使用

打开边界条件面板并选择 expression


Area ([location,…])

例如,当你要获取边界inlet和outlet的面积时,为Area([“outlet,inlet”])

Average (<expr>, [location], Weight= None | ”Area” | ”Volume”)

当你要获取入口的面积加权平均温度时,为

Average (StaticTemperature,[“inlet”], Weight = “Area”)

当然还可获取具体 位置(如某边界或域)的最大、最小、求和值以及体积等

• Maximum (<expr>,[location,…])

• Minimum (<expr>,[location,…])

• Sum (<expr>, [location,…],Weight = None | ”Area” | ”Volume”)

• Volume ([location,…])

支持并行计算
可以使用简单的逻辑完成复杂的定义:
IF (条件, true, false)
OR (条件 1, 条件 2)
AND (条件 1, 条件 2)
IF 语句使用示例

OR 的使用示例

支持三角函数

sin, cos, tan, asin,acos,atan,sinh,cosh,
tanh, asinh,acosh,atanh

和其他函数

exp, log, log10, abs, sqrt

示例:用出口温度控制计算域的源项

根据平均出口温度调整某一区域的热源的实例

4.变量

  Variables:变量(在上述表达式, t 是一个 variable)

§可以是场和解的变量
§Fluent中的变量可以在表达式编辑器面板的菜单中找到
§常用变量的别名(例如“t”=时间,“x”=x坐标,…)
在上下文菜单中选择的变量将显示在表达式中

variable

Description



Time

Current  time



Timestep

Current  time step



DeltaTime

Current  time step



Iteration

Current  iteration count


Alias notation

variable

Description

x, y, z

x, y, z coordinates

u, v, w

x, y, z direction  velocity

t, dt, iter

Time  step, ticks, number of iterations

T

Static  temperature

P

Static  pressure

mf

Mass  fraction

variable

Description

PI

Pi

e

Number  of napiers (2.718…)

R

Gas  constant

avogadro

Avogadro's  number

boltzmann

Boltzmann  constant

clight

speed  of light

echarge

Electric  quantity

g

Gravity  acceleration

planck

Planck's  constant

stephan

Stefan-Boltzmann  constant

mupermo

Permeability

其他可以访问到的流场变量可以查阅帮助手册
来源:CFD仿真区
ACTFluentSystemUDFUMElectric控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-10-13
最近编辑:22天前
濮小川CFD
硕士 心不唤物,物不至!
获赞 13粉丝 37文章 103课程 0
点赞
收藏
作者推荐

【SCIM03】带冷却通道的燃料电池六面体网格划分

概述 本案例假定有一点点SCIM网格划分的经验。案例主要包括:启动Ansys SpaceClaim mesh模式,将几何划分为不同的组件并生成块合并两个块拓扑得到共节点网格统计网格数量和检查质量问题输出Fluent网格文件1启动SCIM模式启动ANSYS spaceclaim,并勾选mesh模式更改单位为微米μm,并设置每个栅格为5μm启动mesh模式,选择流体动力学2网格划分几何分为如下两个组件仅勾选component1,点击新增/编辑,如下图设置,选择所有component1所有body由于在Block Material中设置了“体Body”,所以生成Blocking拓扑与“Component1”中的相同,其中生成2个Swept Block与11个Mapped Block通过在显示的位置利用分割split功能,将Sweep blocks转换为Mapped block选择分割-选择边缘点/顶点,然后选择两个顶点为一组来分割,一个sweep block将被分割为两个独立的块;1,2,3和4是Swept block,需要转换为Mapped block将1,2,3和4的Swept block转换为Mapped block点击映射/扫描选择几何体选择选项,将 blocking options设置为Mapped 选择并将Swept blocks转换为Mapped 前面提到Swept blocks是用蓝色表示的,在转换为Mapped blocks后,会变成绿色来源:CFD仿真区

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈