24小时热门版块排行榜    

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

歪歪_crazy

银虫 (初入文坛)

[求助] Fluent 中 UDF 计算结果输出到窗口问题 已有1人参与

求助!已经将输出显示在窗口的语句   printf("P_out: %g\n", p);   放在循环外了,为什么计算的时候还是每次都要输出计算结果?

Fluent 中 UDF 计算结果输出到窗口问题
1111.PNG


Fluent 中 UDF 计算结果输出到窗口问题-1
22222.PNG
回复此楼

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

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

歪歪_crazy

银虫 (初入文坛)

引用回帖:
9楼: Originally posted by sfbook at 2016-11-29 15:35:37
d也就是domain,是thread的组合,它的数值可以在Boundary Conditions的ID栏里看到(Cell Zone Conditions里面的ID我基本没有用过,貌似是有些区别的?),如果你是在这里面直接设置的话完全可以避开所有的loop选项 ...

首先,我试验了一下,确实如你所说的,DEFINE_SOURCE 是自带循环的,但是它的循环应该是针对每一个 cell ,也就是说没有一个 cell ,它会循环一次,而嵌在其中的 Loop 循环也会循环一次,并且每次循环得到的也是我先要的 cell 加和值(因为Loop循环是针对整个域进行的),结果就导致了我现在比较简单的一个计算就非常的慢。
所以我现在打算使用 DEFINE_ADJUST 进行计算,但是在计算过程中我发现我不能 定位到我想要的计算区域,下面程序是可以在整个计算域里面计算并返回计算值的。然后我使用Get_Domain 和 Lookup_Thread 进行定位都失败了,不知道你有什么经验或者建议吗?谢谢了!

#include "udf.h"
#define zone_ID 0
double P_out=0.;




DEFINE_ADJUST(TEG_adjust,domain)
{
        Thread *t;
        cell_t c;
        Thread *teg;
        Domain *all;
        int  Zone_ID;
       
        face_t f;
    real temp=0.,grad=0.,source=0.;
        real a=0.,b=0.;
        real u=0.,u_sum=0.,vol=0.,vol_sum=4.752*0.00001;
        real r=0.,r_sum=0.,s=1.76*0.001;
        real p=0.;

       

thread_loop_c (t,domain)
{
       


                begin_c_loop (c,t)
                {
                  temp=C_T(c,t);
                  vol=C_VOLUME(c,t);
                  grad=-0.0003*C_T_G(c,t)[0];/*0 for x,1 for y, 2 for z*/
                  
                  a=-6.035*0.0001+6.270*0.000001*temp-1.571*0.00000001*temp*temp+1.260*0.00000000001*temp*temp*temp;
                  u=a*grad*vol/vol_sum;
                  u_sum+=u;

                  b=-7.188*0.0000001+6.926*0.000000001*temp-3.573*0.000000000001*temp*temp;
                  r=b*vol/s/s;
                  r_sum+=r;
                }
                end_c_loop (c,teg)
}
p=u_sum*u_sum/(2*r_sum);
         
         P_out=p;

Message("%g, %g %g\n", u_sum,r_sum,P_out );


}
10楼2016-12-01 10:27:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 14 个回答

jie_ge

新虫 (小有名气)

因为循环外还有一个循环,

发自小木虫Android客户端
走好自己的路,下一步就很精彩!
2楼2016-11-27 22:43:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

歪歪_crazy

银虫 (初入文坛)

引用回帖:
2楼: Originally posted by jie_ge at 2016-11-27 22:43:14
因为循环外还有一个循环,

什么意思呢?不太明白…… 还有能否给出个解决方案?
3楼2016-11-27 23:10:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jie_ge

新虫 (小有名气)

引用回帖:
3楼: Originally posted by 歪歪_crazy at 2016-11-27 17:10:46
什么意思呢?不太明白…… 还有能否给出个解决方案?...

thread_loop_c没有结束语吧,在输出之前加结束语!

发自小木虫Android客户端
走好自己的路,下一步就很精彩!
4楼2016-11-27 23:30:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见