当前位置: 首页 > 仿真模拟 >DEFINE_ADJUST计算出的变量值为什么不能直接在DEFINE_PROFILE内读取呢?

DEFINE_ADJUST计算出的变量值为什么不能直接在DEFINE_PROFILE内读取呢?

作者 scwillwin
来源: 小木虫 600 12 举报帖子
+关注

代码如下,请朋友们帮我看看到底是什么问题。
第一步是要用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) 返回小木虫查看更多

今日热帖
  • 精华评论
  • shirui石蕊

    你的代码中,上文的real的是NV_VEC(A)函数,下文是NV_MAG(A)函数,不知道您是否 注意到。还有,您的PROFILE函数少了一个大括号。我对函数编写不太懂,可能说的是废话。

  • soriyoshi

    你在算之前设定的时候有个菜单上选了这个define adjust 没有

  • scwillwin

    引用回帖:
    2楼: Originally posted by shirui石蕊 at 2018-01-15 23:45:23
    你的代码中,上文的real的是NV_VEC(A)函数,下文是NV_MAG(A)函数,不知道您是否 注意到。还有,您的PROFILE函数少了一个大括号。我对函数编写不太懂,可能说的是废话。
    ...

    谢谢您,括号是刚才粘贴的时候漏了,NV_VEC(A)这个应该是没有问题,我看好多地方都是这么写的

  • scwillwin

    引用回帖:
    3楼: Originally posted by soriyoshi at 2018-01-16 16:13:51
    你在算之前设定的时候有个菜单上选了这个define adjust 没有

    您这么一说还真是,我在解释运行后,在选择UDF时,可以选择adjust和new,但是这个好像只能选一个吧,如果我选了adjust,是不是new就不起作用了呢?

  • qwehanwei

    楼主你好,我也在做这方面的东西,temp也是没有读取上面的结果,一直是0,可以一块儿讨论一下

  • 风卷尘沙起

    楼主问题解决了吗

  • 邓兰SWPU

    楼主您好,想问下你的问题解决了吗。

猜你喜欢
下载小木虫APP
与700万科研达人随时交流
  • 二维码
  • IOS
  • 安卓