马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
我想用UDF求解场协同角(速度矢量与温度梯度的夹角),以下是我的程序,顺便交代一下,我是想用DEFINE_ADJUST和DEFINE_EXECUTE_AT_END两个宏进行比较一下,其中有一部分程序我是为了显示一些变量,然后自己检验一下计算结果合不合理。
DEFINE_EXECUTE_AT_END(cooperation_coff)
{
real i=0,cos,coef;
real T,T0,T1,T2,u,v,w,dT,dT_V,V;
FILE *fp3=fopen(UDF_FILE_3, "w");
int id=2;
Domain *d=Get_Domain(1);
Thread *t=Lookup_Thread(d,id);
thread_loop_c(t,d)
{
cell_t c;
if(THREAD_ID(t)==2)
begin_c_loop(c,t)
{
T=C_T(c,t);
T0=C_T_RG(c,t)[0];
T1=C_T_RG(c,t)[1];
T2=C_T_RG(c,t)[2];
u=C_U(c,t);
v=C_V(c,t);
w=C_W(c,t);
ND_SET(u,v,w,C_U(c,t),C_V(c,t),C_W(c,t));
dT_V=T0*u+T1*v+T2*w;
dT=sqrt(T0*T0+T1*T1+T2*T2);
V=sqrt(u*u+v*v+w*w);
cos=dT_V/(dT*V);
coef=acos(cos);
i++;
fprintf(fp3,"%d %e %e %e %e %e %e %e %e %e %e %e\n",i,T0,T1,T2,u,v,w,dT,dT_V,V,cos,coef);
}
end_c_loop(c,t)
}
fclose(fp3);
}
DEFINE_ADJUST(cooperation_coff_1,d)
{
real i=0,cos,coef;
real T,T0,T1,T2,u,v,w,dT,dT_V,V;
FILE *fp4=fopen(UDF_FILE_4, "w");
Thread *t;
cell_t c;
thread_loop_c(t,d)
{
if(FLUID_THREAD_P(t))
begin_c_loop(c,t)
{
T=C_T(c,t);
T0=C_T_G(c,t)[0];
T1=C_T_G(c,t)[1];
T2=C_T_G(c,t)[2];
u=C_U(c,t);
v=C_V(c,t);
w=C_W(c,t);
ND_SET(u,v,w,C_U(c,t),C_V(c,t),C_W(c,t));
dT_V=T0*u+T1*v+T2*w;
dT=sqrt(T0*T0+T1*T1+T2*T2);
V=sqrt(u*u+v*v+w*w);
cos=dT_V/(dT*V);
coef=acos(cos);
i++;
fprintf(fp4,"%d %e %e %e %e %e %e %e %e %e %e %e\n",i,T0,T1,T2,T,u,v,w,dT,dT_V,V,cos);
printf("%d %e %e %e %e %e %e %e %e %e %e %e\n",i,T0,T1,T2,u,v,w,dT,dT_V,V,cos,coef);
}
end_c_loop(c,t)
}
fclose(fp4);
} |