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

FLUENT动网格宏——DEFINE_CG_MOTION宏

(2011-05-04 19:06:16)
标签:

fluent

动网格

分类: FLUENT技巧

*————————译自《FLUENT UDF手册》,2.6.1节——————*

1、描述

通过使用DEFINE_CG_MOTION宏来指定特定动态区域的运动。该宏能够指定每一时间步的线速度与角速度。ANSYS FLUENT利用这些速度更新动态区域的节点位置。该宏只能用于编译型。

 

2、语法说明

DEFINE_CG_MOTION(name,dt,vel,omega,time,dtime)

(1)name:宏名,由用户指定,需要符合UDF中宏命名规范。

(2)dt:类型为Dynamic_Thread *dt,是一个包含了用户指定的动网格属性结构的指针。

(3)vel:数据类型为real vel[],速度向量,vel[0]表示x方向线速度,vel[1]表示y方向,vel[2]为Z方向。

(4)omega:real omega[],角速度向量。索引为0~2,分别表示x,y,z方向角速度。

(5)time:类型为real,表示当前时间。

(6)dtime:类型为real,表示时间步

该宏的返回类型为void

 

此宏包含有六个参数,其中name是用户提供,其他的参数如dt,vel,omega,time,dtime均有ansys fluent求解器传递。线速度与角速度能返回至ansys fluent。

 

3、实例

以下的例子中,线速度是通过物体上的x方向的力平衡达到的。表达形式为:

image 此处v为速度,F为外力,m为质量。使用显示欧拉格式表达t时刻速度为:

image

程序如下:

 

#include “udf.h”

static real v_prev=0.0;

DEFINE_CG_MOTION(piston,dt,vel,omega,time,dtime)

{

Thread *t;

face_t f;

real NV_VEC(A);

real force,dv;

NV_S(vel,=,0);

NV_S(omega,=,0);

if(!Data_Valid_P())

{

     return ;
    }

t=DT_THREAD(dt);

force = 0.0;

begin_f_loop(f,t)

{

    F_AREA(A,f,t);

    force += F_P(f,t)* NV_MAG(A);   

}

end_f_loop(f,t)

dv = dtime * force /50.0;

v_prev += dv;

Message(“time =%f, x_vel=%f, force=%f\n”,time,v_prev,force);

vel[0] = v_prev;

}

0

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

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

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

新浪公司 版权所有