Fluent動網格【7】:網格節點運動


在動網格中,對於那些既包含了運動也包含了變形的區域,可以通過UDF來指定區域中每一個節點的位置。這給了用戶最大的自由度來指定網格的運動。在其他的動網格技術中(如重疊網格)則很難做到這一點。定義網格節點的位置是通過UDF宏DEFINE_GRID_MOTION來實現的。

步驟

可以通過以下步驟來指定既包含剛體運動又包含變形的區域:

  • Zone Names列表項中選擇運動區域

  • 選擇TypeUser-Defined

  • Motion Attributes中,選擇UDF函數。此時的UDF用的是DEFINE_GRID_MOTION宏。

宏的描述

DEFINE_GRID_MOTION ( name , d , dt , time , dtime)

參數:

name:自定義宏的名稱,symbol name。

d:指向區域的指針,Domain *d。

dt:指向存儲動網格屬性的結構體指針,Dynamic_Thread *dt。

time:當前時間,real time。

dtime:時間步長。

宏中包含了5個參數:name,d,dt,time,dtime。其中name為用戶自定義,而d,dt,time以及dtim均由Fluent傳入。

示例文件

以下示例宏文件表達了一個簡支梁的彎曲。

/**********************************************
   node motion based on simple beam deflection
   equation compiled UDF
*********************************************/
#include "udf.h"
 
DEFINE_GRID_MOTION(beam,domain,dt,time,dtime)
{
    Thread *tf = DT_THREAD(dt);
    face_t f;
    Node *v;
    real NV_VEC(omega), NV_VEC(axis), NV_VEC(dx);
    real NV_VEC(origin), NV_VEC(rvec);
    real sign;
    int n;
    /* set deforming flag on adjacent cell zone */
    SET_DEFORMING_THREAD_FLAG(THREAD_T0(tf));
    sign = -5.0 * sin (26.178 * time);
    Message ("time = %f, omega = %f\n", time, sign);
    NV_S(omega, =, 0.0);
    NV_D(axis, =, 0.0, 1.0, 0.0);
    NV_D(origin, =, 0.0, 0.0, 0.152);
    begin_f_loop(f,tf)
    {
       f_node_loop(f,tf,n)
       {
        v = F_NODE(f,tf,n);
        /* update node if x position is greater than 0.02   
        and that the current node has not been previously
        visited when looping through previous faces */
        if (NODE_X(v) > 0.020 && 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);
         omega[1] = sign * pow (NODE_X(v)/0.230, 0.5);
         NV_VV(rvec, =, NODE_COORD(v), -, origin);
         NV_CROSS(dx, omega, rvec);
         NV_S(dx, *=, dtime);
         NV_V(NODE_COORD(v), +=, dx);
        }
     }
  }
  end_f_loop(f,tf);
}

下次會演示這個宏的效果。


更多關於CFD內容,可微信掃描下方二維碼關注微信公眾號。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM