DEFINE_ADJUST计算出的变量值为什么不能直接在DEFINE_PROFILE内读取呢?
代码如下,请朋友们帮我看看到底是什么问题。
第一步是要用DEFINE_ADJUST计算边界上的平均温度avg_temp,然后用平均温度来计算边界上的对流换热系数,可是我在模拟的时候发现,在DEFINE_PROFILE宏中,avg_temp的值并没有读取上面的结果,而一直是0.这是为什么呢?毕业论文的关键步骤,拜托啦!!!
#include "udf.h"
#include"math.h"
real avg_temp;
real NV_VEC(A);
real sum_T_A=0.0;
real sum_A=0.0;
real T;
Thread *thread_out;
face_t f;
Domain *domain;
DEFINE_ADJUST(adjust,d)
{
domain=Get_Domain(1);
thread_out=Lookup_Thread(domain,13);
begin_f_loop(f,thread_out)
{
F_AREA(A,f,thread_out);
sum_A+=NV_MAG(A);
sum_T_A+=NV_MAG(A)*F_T(f,thread_out);
}
end_f_loop(f,thread_out)
avg_temp=sum_T_A/sum_A;
}
DEFINE_PROFILE(new,t,i)
{
begin_f_loop(f,t)
{
T=avg_temp;
F_PROFILE(f,t,i)=0.0346*(T-295)+5.8969;
}
end_f_loop(f,t) 返回小木虫查看更多
你的代码中,上文的real的是NV_VEC(A)函数,下文是NV_MAG(A)函数,不知道您是否 注意到。还有,您的PROFILE函数少了一个大括号。我对函数编写不太懂,可能说的是废话。
你在算之前设定的时候有个菜单上选了这个define adjust 没有
谢谢您,括号是刚才粘贴的时候漏了,NV_VEC(A)这个应该是没有问题,我看好多地方都是这么写的
,
您这么一说还真是,我在解释运行后,在选择UDF时,可以选择adjust和new,但是这个好像只能选一个吧,如果我选了adjust,是不是new就不起作用了呢?
楼主你好,我也在做这方面的东西,temp也是没有读取上面的结果,一直是0,可以一块儿讨论一下
楼主问题解决了吗
楼主您好,想问下你的问题解决了吗。