基于上周的热电耦合案例引申出的赋予随温度场变化电导率的方法。今天介绍一下CFX中的变达式的基本逻辑和使用方法。
个人认为相比于Fluent中的udf,CEL 语言的逻辑更加简单易懂,使用起来也更加方便。
CEL(CFX Expression Language)是在CFX 计算中用于用户自定义方程来进行前后处理的一种语言。
可在前后处理界面的Expression中来定义。
CEL的语法规则与常规的代数计算语法规则相同。一般计算可使用到的数学运算符号也都可以使用(加“+”,减“-”,乘“*”,除“/”,乘方“^”)。
但使用时,需注意以下几点:
在定义变量名称时,需严格区分大小写
例:Temperature 和temperature 会被识别为两个变量
和代数计算一样,进行加、减计算时,需保证单位一致,且单位可以参与计算
例:a[kg m^-3] *b[m s^-1]=ab[kg m^-2 s^-1]
从上面的例子中可注意到,单位的格式和添加方式:
单位需要有方括号包围[],否则会被识别为表达式名称,导致出错;
带有分子分母的单位,如kg/m^3 在CEL 中的正确格式是 [kg m^-3]注意kg 与 m^-3之间有一个空格;
在定义一个常数变量是也可以添加单位,需使用方括号包围,编辑好后自动变为斜体,表示单位识别成功。
CEL 中有可直接添加常用的常量
在CFX-Pre的模型树中找到Expression,右击选择“insert-->Expression",输入表达式名称,并输入表达式内容。最终点击Apply ,一个Expression 添加成功。
在添加多个表达式,可以重复上面的步骤继续添加
但是,如果,你需要定义的表达式有以下这么多
每个都点鼠标来创建就会有很多重复工作,下面介绍个更省时的办法。
小本本记好啦!
首先,在word或记事本中编辑好所有表达式,我比较喜欢用记事本。
然后全选中,复 制。
在CFX-pre中先按照之前的创建Expression表达式的办法创建一个任意表达式。
然后右击该表达式,选择"Edit command Editor"
将刚刚复 制过来的所有表达式粘贴在这里,点击左下角的“Process”编译。
所有的表达式一次性添加好了。
这个编辑“Editor command editor ” 就相当于一个TUI 的命令处理界面,不仅可以用于创建表达式。
其他所有前处理设置都可以使用TUI的命令来控制。对于同类型的计算做前处理非常省时。例如,批量添加材料或是边界条件,复 制模板的前处理设置等。
在模型树中的每个节点,都可以右击选择“Editor command editor ”的方式来批量调整设置。
CFX 中可以直接引用很多常用的数学函数,如三角函数,对数函数等
另外,还包含了一些系统变量,比如速度velocity,压力pressure,流量massflow 等。这些变量不能重复定义。在使用时可以直接引用。详细的系统变量可以从HELP 文档中获取。
在上周的文章中提到 ,在定义线圈的电导率时,可定义随温度变化的表达式,这样在计算时,电导率可以随着迭代过程中的温度变化而计算得到电导率。
没看过的小伙伴们戳下面的链接:
电导率随温度的变化,也可以通过公式来定义
其中,
L0,T0分别为参考温度下的电导率以及参考温度
α为电导率的温度系数,参考温度为20度下,铜材料的电导率的温度系数为-0.0036S/m/K
注:该公式适用于铜线圈温度在200度以下的工况。
我们可以先在Expression中创建两个变量,分别是参考温度下的电导率(本公式的参考温度为20度),以及实际电导率
表达式如下:
electrial conductivity Lo =59.6[S m^-1]
创建入Expression 中
当然,电阻温度系数也要参考铜线圈的温度来确定。如线圈温度较高,本案例中的线圈温度有700多度(热电耦合案例分享),此时电阻随温度变化不大,采用固定的电导率输入也没有什么问题。