加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

几个DEFINE_ZONE_MOTION的例子

(2014-03-20 11:24:51)
分类: CFD软件

#include "udf.h"

DEFINE_ZONE_MOTION(motion_ypos,omega,axis,origin,velocity,time,dtime)
{
   real ang_vel_outer =  4.0;    
   real x1,y1,x2,y2,current_angle,next_angle ; 
   real offset_angle = 0.0;
   current_angle = ang_vel_outer * (CURRENT_TIME ) + offset_angle ;
   next_angle = ang_vel_outer * (CURRENT_TIME + CURRENT_TIMESTEP) + offset_angle ;
   x1= -1.0*sin(current_angle);
   y1=  1.0*cos(current_angle);
   x2= -1.0*sin(next_angle);
   y2=  1.0*cos(next_angle);
   velocity[0] = (x2 - x1) / CURRENT_TIMESTEP;
   velocity[1] = (y2 - y1) / CURRENT_TIMESTEP;
   origin[0] = x2;
   origin[1] = y2; 
   *omega = ang_vel_outer / 2.0;
  return;
}

DEFINE_ZONE_MOTION(motion_xpos,omega,axis,origin,velocity,time,dtime)
{
   real ang_vel_outer =  4.0;    
   real x1,y1,x2,y2,current_angle,next_angle ; 
   real offset_angle = -M_PI/2.0;;
   current_angle = ang_vel_outer * (CURRENT_TIME ) + offset_angle ;
   next_angle = ang_vel_outer * (CURRENT_TIME + CURRENT_TIMESTEP) + offset_angle ;
   x1= -1.0*sin(current_angle);
   y1=  1.0*cos(current_angle);
   x2= -1.0*sin(next_angle);
   y2=  1.0*cos(next_angle);
   velocity[0] = (x2 - x1) / CURRENT_TIMESTEP;
   velocity[1] = (y2 - y1) / CURRENT_TIMESTEP;
   origin[0] = x2;
   origin[1] = y2; 
   *omega = ang_vel_outer / 2.0;
  return;
}

DEFINE_ZONE_MOTION(motion_yneg,omega,axis,origin,velocity,time,dtime)
{
   real ang_vel_outer =  4.0;    
   real x1,y1,x2,y2,current_angle,next_angle ; 
   real offset_angle = M_PI;
   current_angle = ang_vel_outer * (CURRENT_TIME ) + offset_angle ;
   next_angle = ang_vel_outer * (CURRENT_TIME + CURRENT_TIMESTEP) + offset_angle ;
   x1= -1.0*sin(current_angle);
   y1=  1.0*cos(current_angle);
   x2= -1.0*sin(next_angle);
   y2=  1.0*cos(next_angle);
   velocity[0] = (x2 - x1) / CURRENT_TIMESTEP;
   velocity[1] = (y2 - y1) / CURRENT_TIMESTEP;
   origin[0] = x2;
   origin[1] = y2; 
   *omega = ang_vel_outer / 2.0;
  return;
}

DEFINE_ZONE_MOTION(motion_xneg,omega,axis,origin,velocity,time,dtime)
{
   real ang_vel_outer =  4.0;    
   real x1,y1,x2,y2,current_angle,next_angle ; 
   real offset_angle = M_PI/2.0;
   current_angle = ang_vel_outer * (CURRENT_TIME ) + offset_angle ;
   next_angle = ang_vel_outer * (CURRENT_TIME + CURRENT_TIMESTEP) + offset_angle ;
   x1= -1.0*sin(current_angle);
   y1=  1.0*cos(current_angle);
   x2= -1.0*sin(next_angle);
   y2=  1.0*cos(next_angle);
   velocity[0] = (x2 - x1) / CURRENT_TIMESTEP;
   velocity[1] = (y2 - y1) / CURRENT_TIMESTEP;
   origin[0] = x2;
   origin[1] = y2; 
   *omega = ang_vel_outer / 2.0;
  return;
}
###################################
#include "udf.h"
DEFINE_ZONE_MOTION(fmotion,omega,axis,origin,velocity,time,dtime)
{
  if (time < 0.1) 
   {
    *omega = 2500.0 * time;
   }
else
   {
    *omega = 250.0;
   }
  N3V_D (velocity,=,1.0,0.0,0.0);
  N3V_S(origin,=,0.0);        
  N3V_D(axis,=,0.0,0.0,1.0);    

  return;
}
####################################

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有