找回密码
 注册
查看: 9156|回复: 36

动网格的udf--能实现流场力控制物体转动,同时能够实现入口速度随时间变化

[复制链接]
发表于 2011-12-2 10:54:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
动网格的udf--能实现流场力控制物体转动,同时能够实现入口速度随时间变化!

[ 本帖最后由 030301029 于 2011-12-28 12:06 编辑 ]

动网格udf--上传流体中文网.rar

1.14 KB, 阅读权限: 1, 下载次数: 766

发表于 2011-12-2 19:51:21 | 显示全部楼层
没下,但支持一下
 楼主| 发表于 2011-12-2 20:31:56 | 显示全部楼层
把限制降低一点。

不过,貌似下载的,下载之后就跑了。也没有留一个记号。
 楼主| 发表于 2011-12-6 21:10:04 | 显示全部楼层
实在寒酸,把下载限制也降低一点。
快过年,冷清多了。
发表于 2011-12-8 14:29:35 | 显示全部楼层

限制设定少了,论坛会变得更活跃

发表于 2011-12-8 16:37:49 | 显示全部楼层
good!
发表于 2011-12-8 18:34:42 | 显示全部楼层
内容如下:

#include "udf.h"
/*
奉献一个动网格的udf。
该udf能实现流场力控制物体转动,同时能够实现入口速度随时间变化

*/
static real Iz=1.28e-8;
static real ph0=1.04719;
static real cg1=2.39e-3;
static real cg2=1.6659e-3;
static real cg3=0.0;

static real UP_PH1=0.0;
static real UP_W1= 0.0;
static real UP_PH2=0.0;
static real UP_W2= 0.0;
static real a0=0.0;
static real a1=0.0;


static real DW_PH1=0.0;
static real DW_W1= 0.0;
static real DW_PH2=0.0;
static real DW_W2= 0.0;
static real b0=0.0;
static real b1=0.0;

DEFINE_CG_MOTION(up, dt, vel, omega, time, dtime)
{
  Thread *t;
  Domain *d;
  real dwp,CG[3],force[3],moment[3];

  NV_S (vel, =, 0.0);
  NV_S (omega, =, 0.0);
  t = DT_THREAD (dt);
  d = THREAD_DOMAIN (DT_THREAD ((Dynamic_Thread *)dt));

  CG[0]=2.39e-3;
  CG[1]=1.6659e-3;
  CG[2]=0.0;

  Compute_Force_And_Moment(d,t,CG,force,moment,FALSE);


          a1=moment[2]/Iz;
          dwp = dtime * ((a1+a0)/2.0);
          a0=a1;

          UP_W1+= dwp;
      UP_PH1+=UP_W1*dtime;
      
  if(UP_PH1>=-1*ph0)
  {
   
    omega[2]=UP_W1;
  }

  if(UP_PH1<-1*ph0)

  {
          UP_W2+= dwp;

          if(UP_W2<=0.0)
          {
          omega[2]=0.0;
          UP_W2=0.0;
          }

          if(UP_W2>0.0)

          {
           UP_PH2+=UP_W2*dtime;

       if(UP_PH2<=1*ph0)
          omega[2]=UP_W2;
       if(UP_PH2>1*ph0)
              omega[2]=0.0;
          }
  }
  Message0("time = %.5e up_dv=%.4e up_PH = %.4e up_W=%.4e M_up = %f.6e\n", time, dwp,UP_PH2, UP_W2, moment[2]);
}

DEFINE_CG_MOTION(down, dt, vel, omega, time, dtime)
{
  Thread *t;
  Domain *d;
  real dwd,CG[3],force[3],moment[3];

  NV_S (vel, =, 0.0);
  NV_S (omega, =, 0.0);
  t = DT_THREAD (dt);
  d = THREAD_DOMAIN (DT_THREAD ((Dynamic_Thread *)dt));

  CG[0]=2.39e-3;
  CG[1]=-1.6659e-3;
  CG[2]=0.0;

  Compute_Force_And_Moment(d,t,CG,force,moment,FALSE);

          b1=moment[2]/Iz;
          dwd = dtime * ((b1+b0)/2.0);
          b0=b1;

          DW_W1+= dwd;
      DW_PH1+=DW_W1*dtime;
     
  if(DW_PH1<=ph0)
  {
          omega[2]=DW_W1;
  }
  if(DW_PH1>ph0)
  {
      DW_W2+= dwd;
          if(DW_W2>=0.0)
          {
      omega[2]=0.0;
          DW_W2=0.0;
          }
      if(DW_W2<0.0)
  {
   
    DW_PH2+=DW_W2*dtime;

        if(DW_PH2>=-1*ph0)
      omega[2]=DW_W2;
    if(UP_PH2<-1*ph0)
          omega[2]=0.0;
  }
  }

  
  Message0("dwd=%.4e dw_PH = %.4e dw_W=%.4e M_dw = %f.6e\n", dwd,DW_PH1, DW_W1, moment[2]);
}


DEFINE_PROFILE(ve_udf, t, i)
{
  face_t f ;

  real vt = RP_Get_Real("flow-time");

if(vt<=0.1)

     begin_f_loop(f,t)
       {
         F_PROFILE(f,t,i) = 0.736*vt ;
       }
    end_f_loop(f,t)

if(vt>0.1&vt<=0.2)

begin_f_loop(f,t)
       {
         F_PROFILE(f,t,i) = 8.832*vt-0.8096 ;
       }
    end_f_loop(f,t)

if(vt>0.2&vt<=0.4)

begin_f_loop(f,t)
       {
         F_PROFILE(f,t,i) = -6.24*vt+2.2816 ;
       }
    end_f_loop(f,t)

}
 楼主| 发表于 2011-12-8 19:07:39 | 显示全部楼层

现在只要是注册会员就可以下载,所以限制不高。

我们中文网以前积累了很多帖子,有一些帖子还是相当好的。不过,少数新来的人,上来就是问问题,也不去搜索一下以前的帖子。这样很不好。
发表于 2011-12-9 10:12:46 | 显示全部楼层

回复 7# gbd20022002 的帖子

代他人谢谢你和楼主。不过我不懂这些代码的。
发表于 2011-12-14 10:25:48 | 显示全部楼层
正在学习,谢谢啦~
发表于 2011-12-15 07:38:52 | 显示全部楼层
原帖由 030301029 于 2011-12-8 19:07 发表

现在只要是注册会员就可以下载,所以限制不高。

我们中文网以前积累了很多帖子,有一些帖子还是相当好的。不过,少数新来的人,上来就是问问题,也不去搜索一下以前的帖子。这样很不好。

顶!
发表于 2011-12-15 08:32:47 | 显示全部楼层
谢谢啊
发表于 2011-12-15 20:21:47 | 显示全部楼层

回复 1# 030301029 的帖子

先支持下把,虽然不知道是什么
发表于 2011-12-15 20:21:47 | 显示全部楼层

回复 1# 030301029 的帖子

先支持下把,虽然不知道是什么
发表于 2011-12-15 20:21:47 | 显示全部楼层

回复 1# 030301029 的帖子

先支持下把,虽然不知道是什么
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表