CFX之CEL语言介绍要点

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在CFX中,CFX表达式语言(CFX Expression Language :CEL)作为一种解释性和说明性的语言嵌入到CFX中。利用CEL,用户可以提高分析模拟的功能,而不需要使用外部分离的Fortran子程序。

在ANSYS的CFX程序中,只要是可以输入值的地方就可以使用CEL表达式进行输入。

CEL的适用范围:

通过变量定义材料属性;

设定复杂的边界条件;

对于求解方程增加求解项。

用户也可以使用监测点功能,在求解过程中对于某个CEL表达式进行监测。

注意:

有些CEL表达式只能在ANSYS的CFX中使用,而不能使用在CFD的后处理中。任何在CFX前处理器中创建的CEL表达式并作为设计浏览器(Design Exploration)中的输出参数,在设计浏览器运行的过程中可能导致致命的错误;所以,若用户需要进行设计浏览,则需要在CFD-Post(后处理)中创建所需所有的设计变量。

本读本包含如下内容:

1、CEL基础。

2、CEL操作符,常量和表达式。

3、CEL的例子。

4、CEL技术细节。

1、CEL基础

值和表达式

利用CEL可以创建值变量和表达式。值变量可以是带量纲的,也可以是不带量纲的。例如下面这个最简单的不带量纲的变量:

b = 3.743

用户也可以创建具有量纲的变量,如下:

g = 9.81 [m s^-2]

在CFD计算过程中,变量的量纲是具有意义的,它们表征了质量,长度,时间,温度或者角度的信息。量纲也是理解值和表达式的基础概念之一。

在CEL中,值可以直接指定,也可以作为表达式的一部分。例如,用户可以使用两个值变量求和形成一个表达式:

= +

在本例中,用户可能希望将相加并赋值给,若只是两个无量纲的变量进行相加用户不需要考虑量纲的问题;但是这两个变量具有量纲则需要考虑量纲的问题了。

表达式可以由之前已定义的表达式进行定义,例如:

= +

在CFX中进行表达式求值往往需要进行单位装换,在缺省状态下使用公制单位制(SI单位制),这样用户就可以使用任何自己的单位制了。

若某个表达式未设定自己的单位字符串,但是引用的变量中有的是具有单位的,则结果表达式的单位由引用的变量或表达式计算后的量纲所决定。例如:某个表达式引用了x坐标平方的倒数,则隐式的使用了长度的-2次方单位。

在表达式中使用定位符

在CFX模拟过程中,具有物理面和网格面的概念:

物理面:在CFX中表征物理边界条件的面称之为物理面;

网格面:在CFX中在几何拓扑结构中划分网格的面称之为网格面。

在模拟过程中,这两种类型的面可能占据完全不同的几何区域;然而,并不需要将物理面和网格面的名称完全区分开,这样只会在表达式使用过程中造成混淆。

为了避免混淆,在CFX使用“@”进行物理面和网格面的区分。若在面名称中找到了“@”定位符则表示是一个物理面;若未找到则在网格面的列表中进行查找。例如:“in1”既是一个物理面的名称,可能也是一个网格面的名称,则“@”表示使用的是一个物理面。

在CFX中,用户可以使用@REGION参数表示某个命名的面是网格面。例如,为了表示网格面in1,可以使用如下表达式:

@REGION:in1

注意:若定位符不是作为物理面或者网格面的表达式而出现,则该表达式无效。CEL语句

CEL语言是一种说明性的语言。用户使用表达式语句进行表达式的申明和定义,并和Fortran以及C语言进行表达式定义的相一致:

语句中必须包含如下内容:

The statement must consist of the following:

•一个数,量纲可选,用于定义一个常量。

•对于数学表达式,可能需要引用一个或者多个数学常量,变量,系统变量或者用户自定义的变量,并由+,-,*,/和^运算符进行连接,并用()

定义运算的优先级,这些规则和传统的数学运算规则一致。

•对于关系表达式则包含关系运算符,一个或者多个数学常量或者从数学表示计算的结果,并由<=,<,==,!=,>.>=连接而成,并可以由可选的()设

定运算优先级。

•对于逻辑表达式包含逻辑操作符,一个或者多个逻辑常量或者关系运算的结果,并通过!,&&,||连接而成,并可以由可选的()设定运算优先级。使用常量

在表达式中使用常量并不需要预先定义,例如:可以使用x + 5 [m]进行表达式计算;或者用户也可以先定义一个常量b=5[m],再创建一个表达式x+b。

逻辑常量值为false和true。逻辑表达式的计算结果为0或者1,分别对应false 和TRUE。

推荐用户使用常量进行表达式的定义,因为可能有多个表达式同时引用一个常量的情况,这样只需要修改常量表达式即可。

表达式参数

在CEL语言中,所有的数值均作为实数进行处理;并遵循如下从高到低的计算优先级顺序。

•指数运算:x^y。

•单操作数的取负运算:-x。

•乘除运算具有相同的优先级:x*y/z。

•加减运算:x+y-z。

逻辑运算和关系运算遵循如下从高到低的计算优先级顺序:

•非运算:!x。

•关系运算(<=, <, > and >=):x >= y。

•关系运算(== and !=):x != y。

•逻辑与运算:x && y。

•逻辑或运算:x || y。

多行表达式

多行表达式有时是十分有用的,尤其是对于复杂的表达式,可以使用多行创建用户需要的表达式。在CFX中可以创建多行表达式,每行需要用合适的分隔符进行分隔。

例如:用户需要表达式A + B/C,其中A,B和C都是复杂的表达式。在这种情况下,可以使用三行进行表达式的书写:

A +

B

/ C

注意:第一行表达式A书写完成后用+结束,表达式B写在单独的一行上,而表达式C用/开头。一旦表达式书写完成,他将出现在表达式定义的列表中

相关文档
最新文档