边界条件/CFX表达式语言 讲座 3 3-1 © 2005 ANSYS CHINA, Inc. CFX 10.0 边界条件 在计算域的所有外部边界上都需要 尽量采用意义明确的名字(你不需要接受系统的默认名 字) 选择边界所在的域 (当计算中有多个域的时候适用). 3-2 CFX 10.0 © 2005 ANSYS CHINA, Inc. 基本设定 边界类型 - 进口,出口,开放式,墙,对 称面 位置 - 选择相应的二维几何体或组合 坐标系 - 如果有多于一个,请选择合适 的 坐标类型 - 只在旋转坐标系中可选。这个 选项允许用户指定基于静止或 旋转坐标系的某些参数 3-3 CFX 10.0 © 2005 ANSYS CHINA, Inc. 边界条件详细内容 可选项取决于边界类型及域的 设定 - 例如:超音速的可选性取决于 域设定里面的热传递模型 - 在右边例子中,只模拟了湍流 (i.e. 没有传热或多组分/多相流 模拟) 3-4 CFX 10.0 © 2005 ANSYS CHINA, Inc. 边界类型 进口 • 流体自进口流入计算域: 用白色箭头表示 出口 • 流体自出口流出计算域: 用黄色箭头表示 开放式边界 • 根据当地条件,流体可以流入或流出计算域:用蓝色双向箭头 表示. 设定过程和进口类似,也需要设定流体方向和压力 墙 • 用绿色的八角体表示. 非滑移/自由滑移, 热传递性质和墙壁的粗 糙度等特性都可以设定 对称面 • 流体在该面一侧的特性是另一面的镜像. 当对称流动存在时可以 用来减少计算网格的数量. 3-5 CFX 10.0 © 2005 ANSYS CHINA, Inc. 预设边界条件 • 可以通过对已知数据文件的插值来设定边界条件. • 我们经常使用以前的模拟结果或已知的实验数据作为当 前模拟的边界条件 • CFX-Pre 可以用插分功能来根据读入的数据生成CEL 表 达式. • 当我们采用“Profile”方法设定边界条件时,这些数据是 自动生成的. 3-6 CFX 10.0 © 2005 ANSYS CHINA, Inc. 施加预设边界条件的步骤 创建一个边界条件文 件。这个可以用 CFX-Post当中的输 出功能实现。 从CFX-Post中产生的边界条件文件。带 颜色的格中的信息是需要的,CFX-Pre会 自动读入。 3-7 CFX 10.0 © 2005 ANSYS CHINA, Inc. 施加边界条件文件的步骤 在CFX-Pre中读入边界条件文件。这个可以通过 Tools>Initialize Profile Data 并选择相应的文件来实 现。我们也可以载入多个边界条件文件,每一个文件也 可以应用在多个地方。 3-8 CFX 10.0 © 2005 ANSYS CHINA, Inc. 施加边界条件文件的步骤 在边界条件处勾选:Use Profile Data 从下拉菜单中选择合适的文 件,然后点击 Generate Values. 3-9 CFX 10.0 © 2005 ANSYS CHINA, Inc. 施加边界条件文件的步骤 边界条件的详细录入界 面会有相应改变,以适 应文件输入。只有当你 点击了Apply以后,这 些改变才会生效。 3-10 CFX 10.0 © 2005 ANSYS CHINA, Inc. 施加边界条件文件的步骤 边界条件文件(以及别的 边界条件)可以通过在 CFX-Pre的边界条件编辑 器中选择绘图选项来实现 可视化。用户可以根据边 界条件文件创建边界的等 值线或矢量图。 每次求解器启动时,边界 条件文件将被读入。也就 是说边界条件文件可以在 两次模拟当中进行修改, 而不必回到CFX-Pre当中 。 3-11 CFX 10.0 © 2005 ANSYS CHINA, Inc. 在多处地方施加边界条件文件 在多处地方施加边界条件文件是可能的: - 对于有相同法向量 X, Y 或 Z的边界, 可以把边界条 件输出成2D 数据文件(比如,对两个有相同法向Z 的边界来说,就输出X和Y方向的数据). 第一个边 界上的数据可以不经修改用于第二个边界上。 - 如果两个边界没有相同的法向,那么可以直接修 改你的边界条件文件使第一个边界上的条件适合 第二个边界。 3-12 CFX 10.0 © 2005 ANSYS CHINA, Inc. 标准变量名 有些变量需要一个前缀来表明材料的名字 (例如 air.vf 就表示空气的体积百分比) 非标准变量名和用户定义的变量名 3-13 CFX 10.0 © 2005 ANSYS CHINA, Inc. 数据插分方法 对一维的离散数据来说,数据间的拓扑关系可以通过对原始数据 的坐标排序来确定。排序后的原始数据就可以应用线形插分。数 据通过这种方式来分类,所以是否提前特殊规定并不重要。 对于二维和三维的离散数据来说,“点云图”的方法被用来实现 插分。整个过程包括对被插分点最近的三个原始数据点的快速定 位,以及根据它们离被插分点距离远近的一个反向加权的平均过 程。 如果某一个原始数据点正好落在该插分点的位置上,那么我 们就用这个原始数据点的值作为该插分点的值。 在求解过程当中,根据离散和数值积分过程的具体要求,求解器 需要各个不同位置上的值,比如在积分点上,节点上和各个面的 中心点上。 在所有的情况下,这个需要的位置都会被确定,原始 的数据就会被插分到该位置。 3-14 CFX 10.0 © 2005 ANSYS CHINA, Inc. 从结果文件中分离出边界条件文件 当边界条件文件被CFX-Solver读入后,如果文件大小不 超过16K,它会被写到.out文件的Profile Data 部分。 16K是一个默认值,这个默认值是可以改变的。所有的 文件里的数据都会被写入结果文件,并可以在DOS环境 下用cfx5dfile命令分离出来 3-15 CFX 10.0 © 2005 ANSYS CHINA, Inc. 从结果文件中分离出边界条件文件 在当前结果文件中找到相应的数据文件,我们需要键入: cfx5dfile file_001.res –list-profile-files (这个命令会列出结果文 件中所有的边界条件文件,每行列一个) 如果要找到某个特定的边界条件文件,键入: cfx5dfile file_001.res –read-profile-file <profile_name>.csv 或者: cfx5dfile file_001.res –extract-profile-file <profile_name>.csv 3-16 CFX 10.0 © 2005 ANSYS CHINA, Inc. CFX Expression Language CEL - CFX Expression Language - CEL 是一种说明性的编译语言,可以让用户不借助 外挂Fortran子程序而对模拟进行强化 - 可以涉及 CFX 内部变量 - are evaluated by the CFX Solver and CFX-Post 3-17 CFX 10.0 © 2005 ANSYS CHINA, Inc. CEL Statements CEL是说明性的 - 描述一个表达式的名字和定义(也可以加入注释等) - 语句的格式必须符合提前设定好的语法。这个语法和大多数 的编程语言中的数学表达式是非常类似的 语句必须包含下列: - 一个数字(如果需要,也可以带单位) - 一个或多个表示常数,系统变量,用户自定义变量,函数或 其它CEL表达式,用 +, -, * , / 和 ^ 分隔。也可以用括号来进 行分组。 以上表达式的语法规则和传统数学规则是一样的 3-18 CFX 10.0 © 2005 ANSYS CHINA, Inc. 表达式规则 变量和表达式应区分大小写 用括号来规定运算的优先级 对加减运算,表达式的单位必须统一 - 1.0 [mm] + 0.45 [yds] - 2.5 [s m^-1] - (3.0 [m s^-1])^-1 - 1.0 [mm] + 0.3 [kg] (valid) (valid) (invalid) 3-19 CFX 10.0 © 2005 ANSYS CHINA, Inc. 表达式规则 分数幂和小数幂是允许 的 - a^(1/2) (valid) - 1.0^0.5 (valid) 符合运算的表达式单位 并不需明确写出---靠计 算结果确定 - (a [kg m^-3] * b [m s^-1]) has units of [kg m^-2 s^-1] 3-20 CFX 10.0 © 2005 ANSYS CHINA, Inc. 系统变量 系统中定义了很多系统变量以供调用 这些系统变量可以被用在任意表达式 系统变量中已经包含了单位 变量列表可以: - 通过在Pre里点击 System Variables 或在Expression Editor里点 击Functions 按钮来列出 - 在CFX-Post里通过观察所有可选变量的方法列出 3-21 CFX 10.0 © 2005 ANSYS CHINA, Inc. 系统变量 x y z r theta t u v w p ke ed T sstrnr density rNoDim viscosity Cp cond enthalpy beta speedofsound subdomain mean diameter deneff 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 Denstiy Non-dimensional radius (rotating frame only) Dynamic Viscosity Specific Heat Capacity at Constant Pressure Thermal Conductivity Specific Enthalpy Thermal Expansivity Local speed of sound in fluid Sub-domain variable (1.0 in Sub-domain, 0.0 elsewhere) Mean Diameter Effective Density Additional Variable name Mass Fraction 3-22 CFX 10.0 © 2005 ANSYS CHINA, Inc. 系统变量 根据模拟的类型和创建的表达式 的形式,CFX-5 系统变量和用 户定义的表达式会变为可选或不 可选 在某些情况下,系统变量会成为 逻辑上不可选 - 时间 (t) 在稳态模拟时不可选 - 温度 (T) 在系统没有传热问 题的时候不可选 在其它情况下,某些系统变量还 问因为所选的物理模型的原因变 成不可选 3-23 CFX 10.0 © 2005 ANSYS CHINA, Inc. 内置函数/常数 一些数学上的函数和操作符在CEL里也可以运用 - 用户也可以通过FORTRAN语言创建自己的函数 Function sin(x) cos(x) tan(x) ** asin(x) acos(x) atan(x) exp(x) loge(x) log10(x) abs(x) sqrt(x) min(x,y) *** max(x,y) *** step(x) * Operand’s Dimensions [x] Angle Angle Angle Dimensionless Dimensionless Dimensionless Dimensionless Dimensionless Dimensionless Any Any Any Any Dimensionless Operand’s Values Any Any Any -1 x 1 -1 x 1 Any Any 0<x 0<x Any 0 x Any Any Any Result’s Dimensions Dimensionless Dimensionless Dimensionless Angle Angle Angle Dimensionless Dimensionless Dimensionless [x] [x]^0.5 [x] [x] Dimensionless *step(x) is 0 for negative x, 1 for positive x and 0.5 for x=0. ** note that tan(x) is undefined for np/2 where n=1, 3, 5 .. . *** both x and y must have the same dimensions. 3-24 CFX 10.0 © 2005 ANSYS CHINA, Inc. 内置运算符/函数和常数 在CEL里一些常用的数学常数也可以被用来创建新的表 达式: - e g pi R Constant: 2.7182818 Acceleration due to gravity: 9.806 [m s^-2] Constant: 3.1415927 Universal Gas Constant: 8314.5 [m^2 s^-2 K^-1] 用户可以定义自己的1D线性或3D云图式的插分函数 - 在输入的数据点之间线性插分,然后输出一个单个的值 - 输入的单位和输出的单位由用户决定 如果用户需要的函数在CEL里没有,或者需要使用某些 特定的变量(比如梯度),用户可以通过链接到一个 FORTRAN函数库来自定义函数 3-25 CFX 10.0 © 2005 ANSYS CHINA, Inc. 定义表达式的方法 • CFX-Pre - 从文件读入 - 在Expression Editor里创建 - 在需要的地方直接输入 • 修改求解器的CCL文件 - 编辑 .DEF 或 .RES 文件 - 通过DOS控制行修改 - 后处理中的表达式可以通过这种方式定义,让求解器使用 3-26 CFX 10.0 © 2005 ANSYS CHINA, Inc. CEL 例子: 可变粘度 数学表达式 粘性剪切流体的粘度: CEL 等效表达式 粘度写成温度的函数 K = 10.0 [kg m^-1 s^-0.5] n = 1.5 ViscT = K * sstrnr ^ (n-1) or ViscT = K*(min(UpperS,(sstrnr+LowerS))^(n1)) K n1 这儿 sstrnr 是一个系统函数 ,表示剪切应力率 这儿 代表剪切应力率 CEL的第二种表达式包含了对应力率的上限和下限,这主要 是为了使计算结果在物理上合理。 3-27 CFX 10.0 © 2005 ANSYS CHINA, Inc. 检验表达式 在 CFX-Pre expression editor 有一个calculate的功能,可以用来测 试表达式,或者画出一维的结果 - 有些值可能需要手工输入,因为系统变量没有值。 在求解器中 当需要值的时候,该表达式就会被检验 - 初始值: 在计算开始的时候 随时间变化的边界条件: 在每一个时间步的开始 流体特性: 在两个时间步长之间的内循环里 累积量: 在每一个时间步长的开始 3-28 CFX 10.0 © 2005 ANSYS CHINA, Inc. 表达式编辑器 表达式编辑器 - 在CFX中开发和管理表达式 的一个有效的工具 - 从很多面板上以及主菜单的 Create选项上都可以进入表 达式编辑器 3-29 CFX 10.0 © 2005 ANSYS CHINA, Inc. CEL 例子 下面例子演示了如何把粘度设定为温度的函数. 粘度和温 度之间的关系是: e 10T 3-30 CFX 10.0 © 2005 ANSYS CHINA, Inc. CEL 例子 或者,你可以用任何的文字编辑器编写出含有上述函数 式的文本文件,然后用表达式编辑器读入 例子: C1 = 10. [ K^-1 ] # constant C2 = 1. [ kg/ms ] # constant vis = C2*exp(-C1*T) # viscosity 3-31 CFX 10.0 © 2005 ANSYS CHINA, Inc. CEL 例子 (边界条件) 下面例子演示了如何用速度的U和V分量给一个旋转的强 设上角速度: 3-32 CFX 10.0 © 2005 ANSYS CHINA, Inc. 合成变量 对于高级用户来说,在求解器中对合成变量进行操作也是可能 的。这些变量可以被输入到表达式中,也可以在Solver Manager中被观测(详见文献中关于Output Control的描述) 在指定位置允许对非逻辑合成变量进行计算. 例子: - 计算在等值面上Cp 的面积平均: areaAve(Cp)@iso1 - 经过某一个位置的某种流体的流量: oil.massFlow()@slice1 注意: - “@<locator>” - 必须作用于某一个几何位置. 流体中的某相或某个组分可以通过下面方式选取 [<phase>.][<component>.]<function> 3-33 CFX 10.0 © 2005 ANSYS CHINA, Inc. 合成变量 系统中有一些已经定义好了的合成变量 0 或 1 取决于具体的函数---参看帮助文档 If 1 argument: - 可以是Post当中的一个表达式; 在求解器当中只允许以 变量形式存在 - 返回值得单位取决于宗数的单位 3-34 CFX 10.0 © 2005 ANSYS CHINA, Inc. 合成变量 EXPRESSIONS: ReqT = 350 [K] TempOut = areaAve(T)@outlet TCFilter = step(TempOut/1[K]-ReqT/1[K]) TCTemp = 400[K]*TCFilter+285[K]*(1-TCFilter) TCFlow = 10[m/s]*TCFilter+2[m/s]*(1-TCFilter) END […] BOUNDARY : TempControl Boundary Type = INLET Location = TempControl Coord Frame = Coord BOUNDARY CONDITIONS : MASS AND MOMENTUM : Option = Normal Speed Normal Speed = TCFlow END HEAT TRANSFER : Option = Static Temperature Static Temperature = TCTemp END END END 3-35 CFX 10.0 © 2005 ANSYS CHINA, Inc. 在CFX-Post当中定义表达式 在CFX-Post 中可以用如下方式定义表达式: 用CFX-Post 中的Expression Editor 直接在当地输入表达式 直接在commandline (Line input mode)或 Command Editor处输入 从CCL文件中读入 从session 文件中读入 从state 文件中读入 3-36 CFX 10.0 © 2005 ANSYS CHINA, Inc. CFX-Post 中的函数 CFX-Post 还提供一系列额外的函数: [<Fluid>.]<function>[_<Axis>[_<Coord Frame>]]([<Expression>])@<Location> - area areaAve areaInt ave count force forceNorm length lengthAve lengthInt massFlow massFlowAve massFlowInt maxVal minVal 面积大小 (projected to axis optional) 面积加权平均 面积加权积分 代数平均 计算数目 某个面上特定方向受力 指定方向的法向力大小 曲线长度 长度加权平均 长度加权积分 总的质量流量 质量加权平均 质量加权积分 最大值 最小值 3-37 CFX 10.0 © 2005 ANSYS CHINA, Inc. CFX-Post 函数 接上页: [<Fluid>.]<function>[_<Axis>[_<Coord Frame>]]([<Expression>])@<Location> - probe sum torque volume volumeAve volumeInt 某点上的值 求总和 在指定轴下对于某个轴的力矩 某个三维体的体积 体积加权平均 体积加权积分 3-38 CFX 10.0 © 2005 ANSYS CHINA, Inc. CEL 例子: 压力系数 数学表达式 压力系数: C press P Pref 1 Vref 2 2 CEL 等效 压力系数 Pref = massFlowAve(P)@inflow DynH = massFlowAve(.5*Density*V^2)@inflow Cpress = (P - Pref)/DynH - or Cpress = (P - massFlowAve(P)@inflow) / massFlowAve(.5*Density*V^2)@inflow 3-39 CFX 10.0 © 2005 ANSYS CHINA, Inc.