CFX培训教材09CEL语言

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

这里, 代表剪切应力率
单击鼠标右键选择系统变量/表达式
例子1 表达式还可以直接输入
例子2 使用“if”功能
– 头19个迭代步设置入口温度为300K,在20个迭代步以后入口温度升为320K
求通过鼠标右键 选择解器变量
Note: 在21st 迭代进口温度 为 320 K
用户函数
可以自定义1-D 的线插值函数或3-D 的空间插值函数
The (signed) component of the force vector in the local x, y or z direction. Any 2D region (e.g., a wall) Any 2D or 3D named subregion of the physical location Similar to the subdomain variable, but allows a specific on which the expression is 2D or 3D location to be given. evaluated. The total mass within a domain or subdomain. This is fluid Any 3D region (e.g., domain or dependent. subdomain) Mass-weighted average of <var> on a domain or Any 3D region (e.g., domain or subdomain. subdomain) The mass-weighted integration of <var> within a domain or Any 3D region (e.g., domain or subdomain subdomain) Any fluid surfaces (e.g., Inlets, Outlets, Openings and fluidMass flow through a boundary. fluid interfaces) Any fluid surfaces (e.g., Inlets, Mass flow weighted average of Outlets, Openings and fluid<var> on a boundary. fluid interfaces)
每个函数需要或者0个或者1个自变量
– areaAve需要1个自变量: areaAve(Temperature)@Wall
– massFlow 不需要自变量: massFlow()@Inlet
返回值的单位取决于自变量的单位
– areaAve(Temperature)@Wall 返回值的单位为温度的单位
积分量
有些功能允许x, y 或 z 算符:
– area_x()@boundary 在x方向上的面积投影 – force_z()@wall 在wall上的作用力的z方向分量 – 详见帮助文档
这些功能也可在不同的坐标系下实现:
– force_z_MyCoord()@wall 在坐标系“MyCoord” 下,在wall上作用力的z方向分量
导入数据 点或手动 添加数据
用户函数的例子
例如: 设置时间步(timestep)随imestep量纲为妙 “ s”
继续...
用户函数的例子
例如: 设置时间步(timestep)随着 迭代次数的变化而变化 ,如
积分量
在表达式中可以通过积分评估某处的变量
积分量 下列为部分函数列表
– 完整列表见帮助 – 创建表达式时,点击右键会显示大多数函数
Function Name and Syntax <required> [<optional>] area( )@<Location> area_x( )@<Location> area_y( )@<Location> area_z( )@<Location> areaAve(<var>)@<Location> areaInt(<var>)@<Location> Operation Valid <Location>
Operand’s Dimensions [x] Angle Angle Angle Dimensionless Dimensionless Dimensionless Dimensionless Dimensionless Dimensionless Any Any Any Any Any Dimensionless
Function sin(x) cos(x) tan(x) *** asin(x) acos(x) atan(x) exp(x) loge(x) log10(x) abs(x) sqrt(x) if(test, res1, res2)* min(x,y) **** max(x,y) **** step(x) *
domainorsubdomainaperaglobalcompany?perachina一些有用的函数?inside函数当在指定位置之内时返回值为1当位于指定位置之外时返回值为0用于限定函数的范围如subdomain或边界boundary?step函数当变量为正时返回值为1变量值为负时返回值是0开关函数if函数也能作为开关函数?areaave和massflowave用于评估某一位置的平均量areaave一
*if 函数包含一个test, 和两个输出结果。当test为true是时,返回第一个输出结果res1. 如果test为false, 返回res2. 如 (x>1[m], 1, 0), 当x大于1 [m]的时候, 设置体分数为1,如果x小于1[m],设置体分数为0,如果x=1,结果为(res1+res2)/2 **当x为负数时,step(x)=0;x为正时,step(x)= 1;x=0时, step(x)= 0.5 *** note that tan(x) is undefined for np/2 where n=1, 3, 5 .. . **** both x and y must have the same dimensions.
– 例如: – 在某等值面上计算面积平均的定压比热容: areaAve(Cp)@iso1 – 某种流体通过某位置的质量流: oil.massFlow()@slice1
CFX-Pre 和CFD-Post中,都可用
– CFX-Pre中使用更为严格
• 例如. 函数的参数必须是变量,而不能是表达式
“@<locator>”必须提供一个指定的几何位置
– 某边界条件名字, 某domain名字 , 某监测点名字等.
对通常的网格区域 “@REGION:<name>”
相/组分可通过下面方式选取:
[<phase name>.][<component name>.]<function>@<locator>
– E.g. Air.Nitrogen.massFlow()@outlet
Area of a boundary or Any 2D region (e.g., boundary interface. or interface) The (signed) component of the normal area vector in the local x, y or z direction. Any 2D region (e.g., a boundary or interface) Area-weighted average of <var> Any 2D region (e.g., a on a boundary. boundary or interface) Area-weighted integral of <var> Any 2D region (e.g., a on a boundary. boundary or interface) Arithmetic average of <var> Any 3D region (e.g., domain or within a domain or subdomain. subdomain) The magnitude of the force vector on a boundary. Any 2D region (e.g., a wall)
求解变量
表达式中可以包含求解器变量
下列为部分可用的系统变量:
– 当创建表达式时,右键点击显示所有系统变量列表
x y z r theta t u v w p ke ed T sstrnr density rNoDim viscosity Cp cond AV name mf Direction 1 in Reference Coordinate Frame Direction 2 in Reference Coordinate Frame Direction 3 in Reference Coordinate Frame Radial spatial location, r = (x^2+y^2)^0.5 Angle, arctan(y/x) Time Velocity in the x coordinate direction Velocity in the y coordinate direction Velocity in the z coordinate direction (absolute) Pressure Turbulent kinetic energy Turbulent eddy dissipation Temperature Shear strain rate Density Non-dimensional radius (rotating frame only) Dynamic Viscosity Specific Heat Capacity at Constant Pressure Thermal Conductivity Additional Variable name Mass Fraction
一些常量在表达式中也是可以使用的:
– e – g Constant: 2.7182818 重力加速度: 9.806 [m s^-2]
– pi
– R
Constant: 3.1415927
通用气体常数: 8314.5 [m^2 s^-2 K^-1]
内部函数
一些数学函数和算子也可以在CEL中使用
– 用户定制的函数可以通过使用Fortran语言创建
Operand’s Values Any Any Any -1 x 1 -1 x 1 Any Any 0<x 0<x Any 0 x Any Any Any Any
Result’s Dimensions Dimensionless Dimensionless Dimensionless Angle Angle Angle Dimensionless Dimensionless Dimensionless [x] [x]^0.5 Any (res1 and res2 must have the same dimensions) [x] [x] Dimensionless
^ (求幂)
变量和表达式区分大小写 (如: t 和 T) 对于加和减运算,表达式必须在量纲上一致(例如: 1.0 [mm] + 0.45 [yds] OK)
– 不能出现量纲不一致的情况
可以采用分数和十进制数的求幂 (例如: a^(1/2) + 1.0^0.5)
无需说明表达式单位 – 是表达式计算的结果 (例如: a [kg m^-3] * b [m s^-1] 计 算的单位结果是 [kg m^-2 s^-1]
与物理模型有关, 有些情 况下变量不可用 – 例如. 需要利用T求解热传递
如何创建表达式
如何创建表达式
添加更多的表达式 (在CFD-Post中有 类似的方法)
在定义窗口点击右键 ,可以添加变量,常 数,函数,位置和创 建好的表达式
例子1 创建一个可变粘度
– 粘性剪切流体的粘度:
K n1
ave(<var>)@<Location> [<Fluid>.]force( )@<Location>
积分量
Function Name and Syntax <required> [<optional>] [<Fluid>.]force_x( )@<Location> [<Fluid>.]force_y( )@<Location> [<Fluid>.]force_z( )@<Location> Operation Valid <Location>
ANSYS CFX 培训教材 第九节:CEL语言
CEL
CEL - CFX Expression Language
– 允许使用者在CFX-Pre和CFD-Post中创建方程 (可以是求解变量/系统变量 的函数)
例如:
CEL 规则
语法规则与通常的算术相同:
+ (加 )
- (减去)
* (乘 )
/ (除 )
inside()@<Location>
mass()@<Location>
massAve(<var>)@<Location>
massInt(<var>)@<Location>
[<Fluid>.]massFlow()@<Location> [<Fluid>.]massFlowAve(<var>) @<Location>
相关文档
最新文档