24小时热门版块排行榜    

查看: 1741  |  回复: 12
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

scwillwin

新虫 (初入文坛)

[求助] DEFINE_ADJUST计算出的变量值为什么不能直接在DEFINE_PROFILE内读取呢? 已有2人参与

代码如下,请朋友们帮我看看到底是什么问题。
第一步是要用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)
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fff皮皮虾

新虫 (初入文坛)

两个宏没有交互,后面那个读不到前面那个宏的计算结果,我现在也遇到这样的问题,但不知道该怎么解决

发自小木虫Android客户端
9楼2018-03-16 09:35:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 13 个回答

shirui石蕊

新虫 (初入文坛)

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

发自小木虫Android客户端
2楼2018-01-15 23:45:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

匿名

用户注销 (正式写手)

本帖仅楼主可见
3楼2018-01-16 16:13:51
已阅   申请仿真EPI   回复此楼   编辑   查看我的主页

scwillwin

新虫 (初入文坛)

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

谢谢您,括号是刚才粘贴的时候漏了,NV_VEC(A)这个应该是没有问题,我看好多地方都是这么写的。
4楼2018-01-16 21:33:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见