基于动网格的移动床悬浮生物载体模拟

问题描述

悬浮生物载体移动床除了悬浮生物载体外,是空气和污水混合的气液两相流,气液两相流采用欧拉(Eularian)模型,悬浮载体简化为球形。
移动床示意图

几何和网格

二维简化模型宽120mm,高205mm,载体圆直径20mm,网格采用ICEM划分,全部采用三角形网格,共有14439个cell.
这里写图片描述

基本设置

  • General
    激活Transient
    激活Gravity
  • Model
    激活Mutiophase,选择Eularian
    激活k-ε,选择RNGEnhanced 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]);
    }

动网格

激活SmoothingRemeshing
点击Setting
这里写图片描述
创建动网格区域
这里写图片描述

初始化

使用Standard Initialize,使用Mark标识出一个宽120高170的区域进行灌水
这里写图片描述

结果

网格
这里写图片描述
空气速度矢量图
这里写图片描述
压力云图
这里写图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值