一个简单的例子。水在通道中流动如图所示,有一个入口(ab),一个出口(cd),一个可移动的挡板(fg),挡板有一定的移动范围(ef,gh)。
15cm 3cm b e f
○ 5cm 入口 ○ ○ c d出口 ○ ○
可移动壁面 a ○ 25cm ○ h 壁面移动范围 ○g
40cm
本例研究简单动网格的应用,将会涉及到:
(1) UDF函数的读入以及要注意的问题 (2) 动网格参数的设定 (3) 动网格动画的设定
一、 利用Gambit建立计算模型
1、 创建各控制点 2、 由点连成直线
3、 由线段创建面——流域 4、 设定边界类型
ab--速度入口(inlet);cd--压力出流(outlet); ef—可变形边界(form1);hg—可变形边界(form2); fg—移动边界(valve) 5、 输出网格文件
二、 利用fluent-2d进行计算
1、 读入mesh文件
File→ Read→ Case…
2、 网格检查(注意最大长度和最小长度) 3、 长度单位设定(cm),并显示网格
4、 设置非定常求解器
保持Unstready Formulation 的1st-Order Implict
注意:目前动态网格计算只能用first-Order
5、 选择紊流模型 6、 材料设置为水
7、 边界条件:设置速度入口条件
8、 编译程序
(1)读入和编辑udf函数
Define→ User-Defined→ Functions→ Compiled…
(a)在Source Files下,点击 Add…
Select File 面板将会打开,选择valve.c (b)在Compiles UDF 面板下,点击Build
注意:将会在FLUENT目录下产生一个缺省libudf文件夹。如果工作目录下已有这个文件夹,请将删掉。
(c)点击Load
注意:如果出现“找不到系统文件之类的提示”,则需要在计算机里装一个c语言的程序。
Valve.c的内容如下:
#include DEFINE_CG_MOTION(valve,dt,cg_vel,cg_omega,time,dtime) { if(time<=0.5) cg_vel[0]= - 0.2; else cg_vel[0]=0.0; } 这是一个UDF文件,即用户自定义函数,可用来确定阀门的运动规律。此时,通过fluent提供的宏DEFINE_CG_MOTION才能使得Fluent接收到所设定的运动规律。函数中的参数cg_vel指平动速度,cg_omega指转动速度,二者都是矢量,cg_vel[0]就是cg_vel的x方向分量,cg_vel[1]就是cg_vel的y方向分量。time指运动时间,在程序中,设定运动时间小于0.5s时,阀门沿x方向的运动速度为-0.2m/s。 9、 动网格参数设置 激活动网格和设定相关参数 Define→ Dynamic Mesh→ Parameters… (1) 在Under下选择Dynamic mesh; (2) 在 Mesh methods下选择smoothing ,Layering和Remeshing (3) 在Smoothing设定参数如下: 保持Spring Constant Factor中的缺省给定数1 设定Boundary Node Relaxation为0.7 保持Convergence Tolerance的缺省设定参数0.001 设定Number of Iterations为50 (4) 设定的Layering参数如下: (5) 设定的Remeshing参数如下: 10、 动网格区域设置 Define→ Dynamic Mesh→ Zones… 在Zone Names下选中form1;对应的Type类型为Deforming,即这个边发生变形;在Definition下选中plane,表明它的变形是在一个平面上;在Point on Plan下面的对应值是变形面上的某一点的坐标值;Plane Notmal为变形面的法向矢量;最后单击Create按钮完成对form1的设置。 Form2类似。 阀门的设置如下: 在Zone Names下选moveface; 对应的Type项选Rigid Body; 在Motion UDF/Profile下选valve::libudf,确定moveface的运动方式; 在Meshing Optins对应的选项中,设置Cell Height(cm)为5 点击Creat完成设置。 11、 流场初始化 12、 监测器 13、 动画设置 14、 迭代计算 15、动画回放 三、 计算结果的后处理 因篇幅问题不能全部显示,请点此查看更多更全内容