“常用公式”在线计算,“设计手册”在线查询
/**********************************************************
   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);
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 支持支持 反对反对

共 4 个关于本帖的回复 最后回复于 2016-1-5 17:05

沙发
地咚、壁咚 新来的 发表于 2015-10-19 23:07:03 | 只看该作者
研发埠培训中心
希望各位朋友给予帮助和指导,在此表示非常感谢!
板凳
cfanxbxz 十品草民 发表于 2015-10-29 13:46:57 | 只看该作者
研发埠人才中心
学习UDF中,看高手解答!
地板
永升 九品主簿 发表于 2016-1-5 17:05:47 | 只看该作者
学习中,看高手解答
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注我们