Fluent动网格【8】:网格节点运动案例

Fluent动网格中的DEFINE_GRID_MOTION宏允许用户定义网格节点的运动。本案例演示采用DEFINE_GRID_MOTION宏指定边界节点的运动。

案例描述

本案例几何模型如图所示。

Fluent动网格【8】:网格节点运动案例_第1张图片

如图所示的同心圆柱体,内圆柱面进行扩张与收缩运动。其脉动位移可表达为:

其中v为径向速度,这里指定为:

可得内圆节点每个时间步坐标为:

角度

内圆几何半径为1 m,外圆半径为 2 m。

几何及网格模型

在ICEM CFD中创建几何模型并划分网格,并将内圆面命名为inner,外圆面命名为outer。如图所示。

Fluent动网格【8】:网格节点运动案例_第2张图片

UDF

本案例UDF如图所示。


 #include "udf.h"
 DEFINE_GRID_MOTION(vel,domain,dt,time,dtime)
 {
    
    Thread *tf = DT_THREAD(dt);
    face_t f; 
    int n;

    Node *v;
    double theta;
    real velocity = 2 * sin(12.56 * time);

    /* set deforming flag on adjacent cell zone */
    SET_DEFORMING_THREAD_FLAG(THREAD_T0(tf));
    begin_f_loop(f,tf)
    {
       f_node_loop(f,tf,n)
       {
            v = F_NODE(f,tf,n);
            if (NODE_POS_NEED_UPDATE (v))
            {
                 /* indicate that node position has been update
                 so that it’s not updated more than once */
                 NODE_POS_UPDATED(v);
                 /*calculate the angle of all nodes*/
                 theta = atan(NODE_Y(v)/NODE_X(v));
                 if(NODE_X(v)>=0)
                 {                   
                    NODE_X(v) = NODE_X(v) + velocity * dtime * cos(theta);
                    NODE_Y(v) = NODE_Y(v) + velocity * dtime * sin(theta); 
                 }
                 else
                 {
                    NODE_X(v) = NODE_X(v) - velocity * dtime * cos(theta);
                    NODE_Y(v) = NODE_Y(v) - velocity * dtime * sin(theta);
                 }
            }
        }
    }  
    end_f_loop(f,tf);
 } 

动网格设置

采用Layering网格更新,参数可采用默认设置。

Fluent动网格【8】:网格节点运动案例_第3张图片

设置inner边界运动类型为user-defined,并加载udf。如下图所示。

Fluent动网格【8】:网格节点运动案例_第4张图片

视频操作

操作视频见:网格节点运动案例


更多CFD资料可微信扫描下方二维码关注微信公众号。


Fluent动网格【8】:网格节点运动案例_第5张图片
微信扫码关注公众号

你可能感兴趣的:(Fluent动网格【8】:网格节点运动案例)