版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yangguangdblu/article/details/79177303
问题描述
悬浮生物载体移动床除了悬浮生物载体外,是空气和污水混合的气液两相流,气液两相流采用欧拉(Eularian)模型,悬浮载体简化为球形。
几何和网格
二维简化模型宽120mm,高205mm,载体圆直径20mm,网格采用ICEM划分,全部采用三角形网格,共有14439个cell.
基本设置
- General
激活Transient
激活Gravity - Model
激活Mutiophase,选择Eularian
激活k-ε,选择RNG和Enhanced Wall Fn - Material
添加污水(sewage)材料
- Boundary Conditions
air_in
velocity-inlet 0.708m/s; phase=air
water_in
velocity-inlet 0.0064m/s; phase=sewage; volume fraction=1
air_out
pressure_inlet
water_out
velocity-inlet -0.01777m/s; phase=sewage; backflow volume fraction=0.91
UDF
对下面的代码进行编译
#include "udf.h"
DEFINE_CG_MOTION(movewall,dt,vel,omega,time,dtime)
{
/*movewall是自己取的名字;dt是指向存储动网格属性的指针;
vel是速度;omega是角速度;time是当前时间;dtime是时间步长*/
Thread *t;/*定义指针t*/
cell_t c;/*定义变量c*/
real cx, cy;/*real在单精度求解器相当于float,
在双精度求解器相当于double*/
real vx[30000], vy[30000];/*定义数组*/
int i;
int n = 0;
if (!Data_Valid_P())/*检查单元的值是否可访问t*/
return;
t = DT_THREAD(dt);/*返回一个指向face thread的指针*/
cx = 0;
cy = 0;
begin_c_loop(c, t)/*在指定的cell thread遍历*/
{
vx[n]=(C_U(c, t));
vy[n]=(C_V(c, t));
n++;
}
end_c_loop(c, t)
for (i = 0; i < n; i++)
{
cx = cx + vx[i];
cy = cy + vy[i];
}
cx = cx / n;
cy = cy / n;
vel[0] = cx;/*x方向速度*/
vel[1] = cy;/*y方向速度*/
Message("\n n=%d, vx=%f, vy=%f\n", n, vel[0], vel[1]);
}
动网格
激活Smoothing和Remeshing
点击Setting
创建动网格区域
初始化
使用Standard Initialize,使用Mark标识出一个宽120高170的区域进行灌水
结果
网格
空气速度矢量图
压力云图