找回密码
 注册
查看: 1840|回复: 1

UDF中DEFINE_CG_MOTION是如何调用的

[复制链接]
发表于 2015-11-18 22:20:46 | 显示全部楼层 |阅读模式

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

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

x
大家好

本人在进行Fluent瞬态运算时,UDF中的Message语句在一个时间步之后反复执行,并且每次显示的变量结果还都不同,程序如下,结果如图Fig1所示。本人比较不理解的是为什么Message(加下划线的那句)执行了那么多次(本人是用单核计算,不存在并行的问题),而且每次显示的结果还不一致,DEFINE_CG_MOTION在UDF中是如何调用的呢?麻烦各位帮忙解答一下。先谢了!

#include "udf.h"
real cvelocity[3]={0,0,0};
real rotcentroid[3]={150,0,0};
real m1=5736;

DEFINE_CG_MOTION(T1,dt,vel,omega,time,dtime)
{
        Thread *thread;
        Domain *domain;

        real force[3]={0,0,0};
        real moment[3]={0,0,0};

        NV_S(vel, =, 0.0);
        NV_S(omega, =, 0.0);

        if(!Data_Valid_P())
                return;

        domain=Get_Domain(1);
        thread=Lookup_Thread(domain,4);
        Compute_Force_And_Moment(domain,thread,rotcentroid,force,moment,TRUE);

        cvelocity[0]+=dtime*(force[0]/m1);
        cvelocity[1]+=dtime*((force[1]-m1*9.81)/m1);

        vel[0]=cvelocity[0];
        vel[1]=cvelocity[1];

        Message("\nvel[0] equals %f\n",cvelocity[0]);
}

Fig1

Fig1
 楼主| 发表于 2015-11-19 16:16:24 | 显示全部楼层
自己顶一下吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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