Presentation is loading. Please wait.

Presentation is loading. Please wait.

边界条件/CFX表达式语言 讲座 3.

Similar presentations


Presentation on theme: "边界条件/CFX表达式语言 讲座 3."— Presentation transcript:

1 边界条件/CFX表达式语言 讲座 3

2 边界条件 在计算域的所有外部边界上都需要 尽量采用意义明确的名字(你不需要接受系统的默认名字)
选择边界所在的域 (当计算中有多个域的时候适用).

3 基本设定 边界类型 位置 坐标系 坐标类型 进口,出口,开放式,墙,对称面 选择相应的二维几何体或组合 如果有多于一个,请选择合适的
只在旋转坐标系中可选。这个选项允许用户指定基于静止或旋转坐标系的某些参数

4 边界条件详细内容 可选项取决于边界类型及域的设定 例如:超音速的可选性取决于域设定里面的热传递模型
在右边例子中,只模拟了湍流 (i.e. 没有传热或多组分/多相流模拟)

5 边界类型 进口 出口 开放式边界 墙 对称面 流体自进口流入计算域: 用白色箭头表示 流体自出口流出计算域: 用黄色箭头表示
根据当地条件,流体可以流入或流出计算域:用蓝色双向箭头表示. 设定过程和进口类似,也需要设定流体方向和压力 用绿色的八角体表示. 非滑移/自由滑移, 热传递性质和墙壁的粗糙度等特性都可以设定 对称面 流体在该面一侧的特性是另一面的镜像. 当对称流动存在时可以用来减少计算网格的数量.

6 预设边界条件 可以通过对已知数据文件的插值来设定边界条件. 我们经常使用以前的模拟结果或已知的实验数据作为当前模拟的边界条件
CFX-Pre 可以用插分功能来根据读入的数据生成CEL 表达式. 当我们采用“Profile”方法设定边界条件时,这些数据是自动生成的.

7 施加预设边界条件的步骤 创建一个边界条件文件。这个可以用CFX-Post当中的输出功能实现。
从CFX-Post中产生的边界条件文件。带颜色的格中的信息是需要的,CFX-Pre会自动读入。

8 施加边界条件文件的步骤 在CFX-Pre中读入边界条件文件。这个可以通过 Tools>Initialize Profile Data 并选择相应的文件来实现。我们也可以载入多个边界条件文件,每一个文件也可以应用在多个地方。

9 施加边界条件文件的步骤 在边界条件处勾选:Use Profile Data
从下拉菜单中选择合适的文件,然后点击 Generate Values.

10 施加边界条件文件的步骤 边界条件的详细录入界面会有相应改变,以适应文件输入。只有当你点击了Apply以后,这些改变才会生效。

11 施加边界条件文件的步骤 边界条件文件(以及别的边界条件)可以通过在CFX-Pre的边界条件编辑器中选择绘图选项来实现可视化。用户可以根据边界条件文件创建边界的等值线或矢量图。 每次求解器启动时,边界条件文件将被读入。也就是说边界条件文件可以在两次模拟当中进行修改,而不必回到CFX-Pre当中。

12 在多处地方施加边界条件文件 在多处地方施加边界条件文件是可能的: 对于有相同法向量 X, Y 或 Z的边界, 可以把边界条件输出成2D 数据文件(比如,对两个有相同法向Z的边界来说,就输出X和Y方向的数据). 第一个边界上的数据可以不经修改用于第二个边界上。 如果两个边界没有相同的法向,那么可以直接修改你的边界条件文件使第一个边界上的条件适合第二个边界。

13 标准变量名 有些变量需要一个前缀来表明材料的名字 (例如 air.vf 就表示空气的体积百分比) 非标准变量名和用户定义的变量名

14 数据插分方法 对一维的离散数据来说,数据间的拓扑关系可以通过对原始数据的坐标排序来确定。排序后的原始数据就可以应用线形插分。数据通过这种方式来分类,所以是否提前特殊规定并不重要。 对于二维和三维的离散数据来说,“点云图”的方法被用来实现插分。整个过程包括对被插分点最近的三个原始数据点的快速定位,以及根据它们离被插分点距离远近的一个反向加权的平均过程。 如果某一个原始数据点正好落在该插分点的位置上,那么我们就用这个原始数据点的值作为该插分点的值。 在求解过程当中,根据离散和数值积分过程的具体要求,求解器需要各个不同位置上的值,比如在积分点上,节点上和各个面的中心点上。 在所有的情况下,这个需要的位置都会被确定,原始的数据就会被插分到该位置。

15 从结果文件中分离出边界条件文件 当边界条件文件被CFX-Solver读入后,如果文件大小不超过16K,它会被写到.out文件的Profile Data 部分。16K是一个默认值,这个默认值是可以改变的。所有的文件里的数据都会被写入结果文件,并可以在DOS环境下用cfx5dfile命令分离出来

16 从结果文件中分离出边界条件文件 在当前结果文件中找到相应的数据文件,我们需要键入:
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

17 CFX Expression Language
CEL - CFX Expression Language CEL 是一种说明性的编译语言,可以让用户不借助外挂Fortran子程序而对模拟进行强化 - 可以涉及 CFX 内部变量 - are evaluated by the CFX Solver and CFX-Post

18 以上表达式的语法规则和传统数学规则是一样的
CEL Statements CEL是说明性的 描述一个表达式的名字和定义(也可以加入注释等) 语句的格式必须符合提前设定好的语法。这个语法和大多数的编程语言中的数学表达式是非常类似的 语句必须包含下列: 一个数字(如果需要,也可以带单位) 一个或多个表示常数,系统变量,用户自定义变量,函数或其它CEL表达式,用 +, -, * , / 和 ^ 分隔。也可以用括号来进行分组。 以上表达式的语法规则和传统数学规则是一样的

19 表达式规则 变量和表达式应区分大小写 用括号来规定运算的优先级 对加减运算,表达式的单位必须统一
1.0 [mm] [yds] (valid) 2.5 [s m^-1] - (3.0 [m s^-1])^ (valid) 1.0 [mm] [kg] (invalid)

20 表达式规则 分数幂和小数幂是允许的 符合运算的表达式单位并不需明确写出---靠计算结果确定 a^(1/2) (valid)
(a [kg m^-3] * b [m s^-1]) has units of [kg m^-2 s^-1]

21 系统变量 系统中定义了很多系统变量以供调用 这些系统变量可以被用在任意表达式 系统变量中已经包含了单位 变量列表可以:
- 通过在Pre里点击 System Variables 或在Expression Editor里点击Functions 按钮来列出 - 在CFX-Post里通过观察所有可选变量的方法列出

22 系统变量 x Direction 1 in Reference Coordinate Frame
y Direction 2 in Reference Coordinate Frame z Direction 3 in Reference Coordinate Frame r Radial spatial location, r = (x^2+y^2)^0.5 theta Angle, arctan(y/x) t Time u Velocity in the x coordinate direction v Velocity in the y coordinate direction w Velocity in the z coordinate direction p (absolute) Pressure ke Turbulent kinetic energy ed Turbulent eddy dissipation T Temperature sstrnr Shear strain rate density Denstiy rNoDim Non-dimensional radius (rotating frame only) viscosity Dynamic Viscosity Cp Specific Heat Capacity at Constant Pressure cond Thermal Conductivity enthalpy Specific Enthalpy beta Thermal Expansivity speedofsound Local speed of sound in fluid subdomain Sub-domain variable (1.0 in Sub-domain, 0.0 elsewhere) mean diameter Mean Diameter deneff Effective Density AV name Additional Variable name mf Mass Fraction

23 系统变量 根据模拟的类型和创建的表达式的形式,CFX-5 系统变量和用户定义的表达式会变为可选或不可选
在某些情况下,系统变量会成为逻辑上不可选 时间 (t) 在稳态模拟时不可选 温度 (T) 在系统没有传热问题的时候不可选 在其它情况下,某些系统变量还问因为所选的物理模型的原因变成不可选

24 内置函数/常数 一些数学上的函数和操作符在CEL里也可以运用 用户也可以通过FORTRAN语言创建自己的函数
Function Operand’s Dimensions [x] Operand’s Values Result’s Dimensions sin(x) Angle Any Dimensionless cos(x) Angle Any Dimensionless tan(x) ** Angle Any Dimensionless asin(x) Dimensionless -1 £ x £ 1 Angle acos(x) Dimensionless -1 £ x £ 1 Angle atan(x) Dimensionless Any Angle exp(x) Dimensionless Any Dimensionless loge(x) Dimensionless 0 < x Dimensionless log10(x) Dimensionless 0 < x Dimensionless abs(x) Any Any [x] sqrt(x) Any 0 £ x [x]^0.5 min(x,y) *** Any Any [x] max(x,y) *** Any Any [x] step(x) * Dimensionless Any 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, *** both x and y must have the same dimensions.

25 内置运算符/函数和常数 在CEL里一些常用的数学常数也可以被用来创建新的表达式: 用户可以定义自己的1D线性或3D云图式的插分函数
e Constant: g Acceleration due to gravity: [m s^-2] pi Constant: R Universal Gas Constant: [m^2 s^-2 K^-1] 用户可以定义自己的1D线性或3D云图式的插分函数 在输入的数据点之间线性插分,然后输出一个单个的值 输入的单位和输出的单位由用户决定 如果用户需要的函数在CEL里没有,或者需要使用某些特定的变量(比如梯度),用户可以通过链接到一个FORTRAN函数库来自定义函数

26 定义表达式的方法 CFX-Pre 修改求解器的CCL文件 从文件读入 在Expression Editor里创建 在需要的地方直接输入
编辑 .DEF 或 .RES 文件 通过DOS控制行修改 后处理中的表达式可以通过这种方式定义,让求解器使用

27 CEL 例子: 可变粘度 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))^(n-1)) 这儿 sstrnr 是一个系统函数,表示剪切应力率 CEL的第二种表达式包含了对应力率的上限和下限,这主要是为了使计算结果在物理上合理。

28 检验表达式 在 CFX-Pre expression editor 有一个calculate的功能,可以用来测试表达式,或者画出一维的结果
有些值可能需要手工输入,因为系统变量没有值。 在求解器中 当需要值的时候,该表达式就会被检验 初始值: 在计算开始的时候 随时间变化的边界条件: 在每一个时间步的开始 流体特性: 在两个时间步长之间的内循环里 累积量: 在每一个时间步长的开始

29 表达式编辑器 表达式编辑器 在CFX中开发和管理表达式的一个有效的工具 从很多面板上以及主菜单的Create选项上都可以进入表达式编辑器

30 CEL 例子 下面例子演示了如何把粘度设定为温度的函数. 粘度和温度之间的关系是:

31 CEL 例子 或者,你可以用任何的文字编辑器编写出含有上述函数式的文本文件,然后用表达式编辑器读入 例子:
C1 = 10. [ K^-1 ] # constant C2 = 1. [ kg/ms ] # constant vis = C2*exp(-C1*T) # viscosity

32 CEL 例子 (边界条件) 下面例子演示了如何用速度的U和V分量给一个旋转的强设上角速度:

33 合成变量 在指定位置允许对非逻辑合成变量进行计算. 例子:
对于高级用户来说,在求解器中对合成变量进行操作也是可能的。这些变量可以被输入到表达式中,也可以在Solver Manager中被观测(详见文献中关于Output Control的描述) 在指定位置允许对非逻辑合成变量进行计算. 例子: 计算在等值面上Cp 的面积平均: 经过某一个位置的某种流体的流量: 注意: - 必须作用于某一个几何位置. 流体中的某相或某个组分可以通过下面方式选取 [<phase>.][<component>.]<function>

34 合成变量 系统中有一些已经定义好了的合成变量 0 或 1 取决于具体的函数---参看帮助文档 If 1 argument:
可以是Post当中的一个表达式; 在求解器当中只允许以变量形式存在 返回值得单位取决于宗数的单位

35 合成变量 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 HEAT TRANSFER : Option = Static Temperature Static Temperature = TCTemp

36 在CFX-Post当中定义表达式 在CFX-Post 中可以用如下方式定义表达式:
用CFX-Post 中的Expression Editor 直接在当地输入表达式 直接在commandline (Line input mode)或 Command Editor处输入 从CCL文件中读入 从session 文件中读入 从state 文件中读入

37 CFX-Post 中的函数 CFX-Post 还提供一系列额外的函数:
[<Fluid>.]<function>[_<Axis>[_<Coord area 面积大小 (projected to axis optional) areaAve 面积加权平均 areaInt 面积加权积分 ave 代数平均 count 计算数目 force 某个面上特定方向受力 forceNorm 指定方向的法向力大小 length 曲线长度 lengthAve 长度加权平均 lengthInt 长度加权积分 massFlow 总的质量流量 massFlowAve 质量加权平均 massFlowInt 质量加权积分 maxVal 最大值 minVal 最小值

38 CFX-Post 函数 接上页: [<Fluid>.]<function>[_<Axis>[_<Coord probe 某点上的值 sum 求总和 torque 在指定轴下对于某个轴的力矩 volume 某个三维体的体积 volumeAve 体积加权平均 volumeInt 体积加权积分

39 CEL 例子: 压力系数 数学表达式 压力系数: CEL 等效 压力系数
Pref = DynH = Cpress = (P - Pref)/DynH or Cpress = (P - /


Download ppt "边界条件/CFX表达式语言 讲座 3."

Similar presentations


Ads by Google