|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
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
|