首页/文章/ 详情

CFX 表达式语言(CEL)详解

1天前浏览5
  

 

基于上周的热电耦合案例引申出的赋予随温度场变化电导率的方法。今天介绍一下CFX中的变达式的基本逻辑和使用方法。

个人认为相比于Fluent中的udf,CEL 语言的逻辑更加简单易懂,使用起来也更加方便。


     
以下是正文      

     
全文阅读约8分钟~      

CELCFX  Expression Language)是在CFX 计算中用于用户自定义方程来进行前后处理的一种语言。

可在前后处理界面的Expression中来定义。


CEL语法规则:

CEL的语法规则与常规的代数计算语法规则相同。一般计算可使用到的数学运算符号也都可以使用(加“+”,减“-”,乘“*”,除“/”,乘方“^”)。

但使用时,需注意以下几点:

  1. 在定义变量名称时,需严格区分大小写

    例:Temperature 和temperature 会被识别为两个变量

  2. 和代数计算一样,进行加、减计算时,需保证单位一致,且单位可以参与计算

    例:a[kg m^-3] *b[m s^-1]=ab[kg m^-2 s^-1]

  3. 从上面的例子中可注意到,单位的格式和添加方式:

    单位需要有方括号包围[],否则会被识别为表达式名称,导致出错;

    带有分子分母的单位,如kg/m^3  在CEL 中的正确格式是 [kg m^-3]注意kg 与 m^-3之间有一个空格;

  4. 在定义一个常数变量是也可以添加单位,需使用方括号包围,编辑好后自动变为斜体,表示单位识别成功。

  5. CEL 中有可直接添加常用的常量


CEL创建方法:

在CFX-Pre的模型树中找到Expression,右击选择“insert-->Expression",输入表达式名称,并输入表达式内容。最终点击Apply ,一个Expression 添加成功。

在添加多个表达式,可以重复上面的步骤继续添加

但是,如果,你需要定义的表达式有以下这么多

每个都点鼠标来创建就会有很多重复工作,下面介绍个更省时的办法。

小本本记好啦!

首先,在word或记事本中编辑好所有表达式,我比较喜欢用记事本。

然后全选中,复 制。

在CFX-pre中先按照之前的创建Expression表达式的办法创建一个任意表达式。

然后右击该表达式,选择"Edit command Editor"


将刚刚复 制过来的所有表达式粘贴在这里,点击左下角的“Process”编译。

所有的表达式一次性添加好了。


这个编辑“Editor command editor ” 就相当于一个TUI 的命令处理界面,不仅可以用于创建表达式。

其他所有前处理设置都可以使用TUI的命令来控制。对于同类型的计算做前处理非常省时。例如,批量添加材料或是边界条件,复 制模板的前处理设置等。

在模型树中的每个节点,都可以右击选择Editor command editor ”的方式来批量调整设置。

CEL中的系统变量和函数引用:

CFX 中可以直接引用很多常用的数学函数,如三角函数,对数函数等

另外,还包含了一些系统变量,比如速度velocity,压力pressure,流量massflow 等。这些变量不能重复定义。在使用时可以直接引用。详细的系统变量可以从HELP 文档中获取。

CEL中应用实例:

在上周的文章中提到 ,在定义线圈的电导率时,可定义随温度变化的表达式,这样在计算时,电导率可以随着迭代过程中的温度变化而计算得到电导率。

没看过的小伙伴们戳下面的链接:

热电耦合案例分享

电导率随温度的变化,也可以通过公式来定义

其中,

L0,T0分别为参考温度下的电导率以及参考温度

α为电导率的温度系数,参考温度为20度下,铜材料的电导率的温度系数为-0.0036S/m/K

注:该公式适用于铜线圈温度在200度以下的工况。


我们可以先在Expression中创建两个变量,分别是参考温度下的电导率(本公式的参考温度为20度),以及实际电导率

表达式如下: 


electrial conductivity L = electrial conductivityLo*(1-0.00363[K^-1]*(areaAve(T)@hot-293.15[K]))

electrial conductivity Lo =59.6[S m^-1]

创建入Expression 中


当然,电阻温度系数也要参考铜线圈的温度来确定。如线圈温度较高,本案例中的线圈温度有700多度(热电耦合案例分享),此时电阻随温度变化不大,采用固定的电导率输入也没有什么问题。



   
   


END    

   



来源:CAE十级退堂鼓
FluentCFXUDF材料控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-08-26
最近编辑:1天前
lalalahu~
硕士 签名征集中
获赞 14粉丝 21文章 52课程 0
点赞
收藏
作者推荐

关于网格划分

最近上班每天大半时间在划分网格,由于是算缝隙流,必须要在2um宽的缝隙中划十层网格,要划得整整齐齐,但是几何总是有这样那样的细节问题。不是划不出,就是划出来的质量不够高,真真是被划网格伤透了心。 其实已经很久没有这么纠结在网格上了,这次是由于分析问题比较特殊,所以花费了不少时间。 但是回想自己刚刚开始做CAE的时候,总是在划分网格时犯强迫症,也钻进过好几次牛角尖。总觉得要划出足够好的网格,才能进行到下一步。对于很多初学CAE 的小伙伴们可能会对于好网格的理解陷入一些误区。今天就和大家来聊一聊吧~ 1、 好网格一定要与CAD模型一致吗? 在进行CAE分析之前,我们通常会从设计人员手中拿到CAD 模型,这些CAD模型会包含所有的细节,如果网格与CAD完全一致会导致网格划分时间,计算时间大大增加。因此需要首先对物理问题进行分析,判断哪里的细节需要保留,哪里的细节可以简化。在划分网格之前先对物理问题进行分析永远是第一项任务。此外,3D 分析也不是一定优于2D 分析的,在保证流场是完全轴对称的情况下,将3D模型简化为2D问题进行分析往往能够使用更少的时间得到更加精确的结果。因此,划出好网格的第一要务是充分理解物理问题,而不是尽量与CAD 模型一致。 网格一定尽量与CAD 模型一致吗? 2 、六面体永远比四面体网格好吗? 大概在五六年前吧,在一些CFD技术交流贴上还有关于结构化网格和非结构化网格的争论,很多人还是很执着于结构化网格。 在早期,由于当时的计算机计算能力和求解器的限制,结构化网格是主流,且非结构化网格的还不够成熟。人们需要花费大量的时间在简化几何,切分几何来划分全六面体网格。但是随着非结构化网格技术的成熟,计算能力的提升,对于绝大多数的工程问题,四面体网格也能得到和六面体网格相同的精度。虽然四面体网格数量较多,会需要更多的计算资源但是却可以省去了大量的生成网格的时间。整体上是提高了工作效率的。因此在面对稍微复杂一些的几何时,试着考虑下四面体网格吧。当然对于一些特定的应用,可能还是需要一些关键部位是六面体网格的。或者你的计算机无法处理太多的网格数量时,适当得做一些切分,使用混合网格来减少一些计算量也是可以哒。 3、越精细的网格就越好吗? 目前随着计算机计算能力的提升以及HPC的资源的出现,计算机能够处理的网格已经非常多了,因此很多人可能就会偏向于划分更多的网格以期待得到更高的计算精度。这种做法有时其实并不可取,网格划分的目的是为了将获取离散位置的物理量,只要计算结果能够得到和真实相似的趋势且满足你的精度要求时,再细化网格的意义其实并不大了。在大多数的工程应用中都是使用CAE手段来进行几种设计方案的对比,这时候对计算结果的绝对值要求并不高,更多的是关注几种设计方案之间的结果差异,而且由于项目周期原因也不会留给CAE太多的时间,这时候精细的网格反而是累赘。另外,在并不关注的位置上划分那么精细化的网格也是毫无意义的。比如,你更关心湍流核心区的流场,使用了标准的壁面函数,但是却划分了多层边界层,这个边界层在计算中是失效的,这样会浪费很多时间,甚至会造成非物理解。所以,在划分网格之前先分析物理问题,根据计算目的确定网格策略和尺度才能划出真正意义上的“好”网格。 4、好的网格总是好的吗? 有时候为了得到一套高质量网格,我们会花费很多时间在简化几何,切分几何,调整网格划分策略和网格尺寸上。网格质量对于计算来说,一定程度上是非常必要的。但是,质量好的网格不一定适用于所有的计算。举个最简单的例子,对于结构仿真来说的高质量网格,但是能用来做流体计算吗?答案是不能的。因为结构仿真不划边界层,流体网格需要边界层也不是为了网格质量而是从黏性力的角度去考虑的。因此,当改变分析类型,边界条件或是分析目的后,好的网格也可能会变成坏的网格。 总结:好网格永远要基于物理问题。 好的网格应该具备以下特征: 能够求解我们要研究的问题网格质量能够让求解器正常计算基于物理问题足够简化的网格适用于项目需要 END 来源:CAE十级退堂鼓

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