24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 3506  |  回复: 22

jesseliuxl

金虫 (小有名气)

[求助] 100个金币:udf改成并行的,求高人

本例是通过出口的浓度与进口关联,串行没问题,并行就一直没搞通,求高人
CODE:
#include "udf.h"
#include "mem.h"
#define q 998
#define out 960
#define film-out 28
#define INT_YI 0.03
real AVG_YI;

DEFINE_ADJUST(outlet_avg_yi, d)
{

real sum_yi_A=0.0;
int j=0;
face_t f;
Thread *thread_out=Lookup_Thread(d,5);
  begin_f_loop(f,thread_out)
{
  sum_yi_A+=F_YI(f,thread_out,0);
  j++;      
}
end_f_loop(f,thread_out)

  AVG_YI=sum_yi_A/j;

printf("%f\n",sum_yi_A);/* write out kount to data file */
printf("%f\n",AVG_YI);
printf("%d\n",j);
}


DEFINE_PROFILE(inlet,thread_in,index)
{
    real inlet_yi=0.0;
    face_t inlet_face;
  
    real time=RP_Get_Real("flow-time");   
    begin_f_loop(inlet_face,thread_in)
        {
          if(time<9)
        {
         inlet_yi=INT_YI;
          F_PROFILE(inlet_face,thread_in,index)=inlet_yi;
        }
        
          else
        {
          inlet_yi=AVG_YI+0.2*out/q;
          F_PROFILE(inlet_face,thread_in,index)=inlet_yi;
        }
      }
        end_f_loop(inlet_face,thread_in)   

     printf("%f\n",inlet_yi);                     
     }

[ Last edited by xiegangmai on 2012-4-11 at 22:36 ]
回复此楼

» 猜你喜欢

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

生命不息折腾不止
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖置顶 ( 共有3个 )

jesseliuxl

金虫 (小有名气)

jesseliuxl: 回帖置顶 2012-04-02 08:59:39
引用回帖:
7楼: Originally posted by kylafree at 2012-04-01 22:57:27:
你连你的东西是干什么的都没说你让别人怎么试

组分输送,把进口组分浓度与出口关联,你这高手应该一看就知道啊
生命不息折腾不止
9楼2012-04-02 08:32:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jesseliuxl

金虫 (小有名气)

jesseliuxl: 回帖置顶 2012-04-06 09:42:09
已经搞定啦,回头把并行的贴出来
生命不息折腾不止
12楼2012-04-06 09:42:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jesseliuxl

金虫 (小有名气)

★ ★
jesseliuxl: 回帖置顶 2012-04-06 09:45:48
xiegangmai: 金币+2, 鼓励分享解决经验,金币奖励! 2012-04-06 10:11:20
xiegangmai: 编辑内容 2012-04-06 10:11
并行的udf
CODE:
#include "udf.h"
#include "mem.h"  
#define q 989.57
#define film_out 72.59
#define cir_out 916.98

#define INT_YI 0.022
real AVG_YI=0.0;

DEFINE_ADJUST(out, d)
     {
      real sum_yi_A=0.0;
      real sum_flux_A=0.0;
      int j=0;

   #if !RP_HOST
      face_t f;
      Thread *thread_out;
   #endif
   #if !RP_HOST
      thread_out=Lookup_Thread(d,19);
   
      begin_f_loop(f,thread_out)
       if (PRINCIPAL_FACE_P(f,thread_out))
       {
         sum_yi_A+=F_YI(f,thread_out,0)*F_FLUX(f,thread_out);
         sum_flux_A+=F_FLUX(f,thread_out);      
       }
      end_f_loop(f,thread_out)
   #endif  
   
     #if RP_NODE
      sum_yi_A=PRF_GRSUM1(sum_yi_A);
      sum_flux_A=PRF_GRSUM1(sum_flux_A);
     #endif

      node_to_host_real_2(sum_yi_A,sum_flux_A);  

      AVG_YI=sum_yi_A/sum_flux_A;
}

DEFINE_PROFILE(in,thread_in,index)
   {
    real inlet_yi=0.0;
    face_t inlet_face;
    #if !RP_HOST
    real time=RP_Get_Real("flow-time");
  
    begin_f_loop(inlet_face,thread_in)
     if (PRINCIPAL_FACE_P(inlet_face,thread_in))  
       {
          if(time<9)
           {
             inlet_yi=INT_YI;
             F_PROFILE(inlet_face,thread_in,index)=inlet_yi;
           }
         
          else
           {
             inlet_yi=AVG_YI*cir_out/q+INT_YI;
             F_PROFILE(inlet_face,thread_in,index)=inlet_yi;
           }
        }
    end_f_loop(inlet_face,thread_in)   

    #endif
    }

[ Last edited by xiegangmai on 2012-4-6 at 10:11 ]
生命不息折腾不止
13楼2012-04-06 09:45:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

5超7

至尊木虫 (著名写手)

菜鸟

并行这东西在流体网上面有所讨论的把!浪子大哥好像开过帖子
我要奋斗到底
8楼2012-04-02 08:08:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yp1990

铜虫 (初入文坛)

引用回帖:
13楼: Originally posted by jesseliuxl at 2012-04-06 09:45:42
并行的udf


#include "udf.h"
#include "mem.h"  
#define q 989.57
#define film_out 72.59
#define cir_out 916.98

#define INT_YI 0.022
real AVG_YI=0.0;

DEFINE_ADJUST(out, d)
     {
      ...

你好,我按照你的模型也修改了我的udf,但是单机多核并行的时候还是出错,不知道怎么回事?
爱拼才会赢
20楼2015-05-03 21:51:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

zxbok1979

木虫 (小有名气)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
jesseliuxl: 金币+2, 有帮助, 要是能这样,还折腾个啥啊 2012-04-01 13:45:51
臭水沟: 金币+1, 谢谢交流~~ 2012-04-02 15:41:08
在单核求解器中编译UDF,保存dat和case,然后再用并行求解器打开就可以了。
SILENCEISALSOAWAYTOLEARN
2楼2012-04-01 12:02:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kylafree

至尊木虫 (知名作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
jesseliuxl: 金币+10, 有帮助, 能编译通过,但是编译后出现错误啦 2012-04-01 18:41:20
臭水沟: 金币+2, 谢谢交流~~ 2012-04-02 15:41:20
#include "udf.h"
#include "mem.h"
#define q 998
#define out 960
#define film-out 28
#define INT_YI 0.03
real AVG_YI=0.0;

DEFINE_ADJUST(outlet_avg_yi, d)
{#if RP_NODE

real sum_yi_A=0.0;
int j=0;
face_t f;
Thread *thread_out=Lookup_Thread(d,5);
   begin_f_loop(f,thread_out)
{
   sum_yi_A+=F_YI(f,thread_out,0);
  j++;      
}
end_f_loop(f,thread_out)
sum_yi_A = PRF_GRSUM1(sum_yi_A);
j = PRF_GRSUM1(j);
  AVG_YI=sum_yi_A/j;

Message0("%f\n",sum_yi_A);
Message0("%f\n",AVG_YI);
Message0("%d\n",j);
#endif
}


DEFINE_PROFILE(inlet,thread_in,index)
{#if RP_NODE
     real inlet_yi=0.0;
     face_t inlet_face;
   
     real time=RP_Get_Real("flow-time" ) ;   
     begin_f_loop(inlet_face,thread_in)
         {
           if(time<9)
         {
          inlet_yi=INT_YI;
           F_PROFILE(inlet_face,thread_in,index)=inlet_yi;
         }
         
           else
        {
           inlet_yi=AVG_YI+0.2*out/q;
           F_PROFILE(inlet_face,thread_in,index)=inlet_yi;
         }
       }
         end_f_loop(inlet_face,thread_in)   

     Message0("%f\n",inlet_yi);                     
     #endif
         }
3楼2012-04-01 16:20:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jesseliuxl

金虫 (小有名气)

引用回帖:
3楼: Originally posted by kylafree at 2012-04-01 16:20:13:
#include "udf.h"
#include "mem.h"
#define q 998
#define out 960
#define film-out 28
#define INT_YI 0.03
real AVG_YI=0.0;

DEFINE_ADJUST(outlet_avg_yi, d)
{#if R ...

编译能通过,不过之后出现这问题,不知是什么原因

你并行里试过没有啊?


生命不息折腾不止
4楼2012-04-01 18:44:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jesseliuxl

金虫 (小有名气)

并行的udf只能编译?
生命不息折腾不止
5楼2012-04-01 22:32:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kylafree

至尊木虫 (知名作家)


臭水沟: 金币+1, 谢谢交流~~ 2012-04-02 15:41:40
#include "udf.h"
#include "mem.h"
#define q 998
#define out 960
#define film_out 28
#define INT_YI 0.03
real AVG_YI=0.0;

DEFINE_ADJUST(outlet_avg_yi, d)
{#if RP_NODE

real sum_yi_A=0.0;
int j=0;
face_t f;
Thread *thread_out=Lookup_Thread(d,5);
    begin_f_loop(f,thread_out)
{
    sum_yi_A+=F_YI(f,thread_out,0);
  j++;      
}
end_f_loop(f,thread_out)
sum_yi_A = PRF_GRSUM1(sum_yi_A);
j = PRF_GRSUM1(j);
   AVG_YI=sum_yi_A/j;

Message0("%f\n",sum_yi_A);
Message0("%f\n",AVG_YI);
Message0("%d\n",j);
#endif
}


DEFINE_PROFILE(inlet,thread_in,index)
{#if RP_NODE
      real inlet_yi=0.0;
      face_t inlet_face;
   
      real time=RP_Get_Real("flow-time" ) ;   
      begin_f_loop(inlet_face,thread_in)
          {
            if(time<9)
          {
           inlet_yi=INT_YI;
            F_PROFILE(inlet_face,thread_in,index)=inlet_yi;
          }
         
            else
        {
            inlet_yi=AVG_YI+0.2*out/q;
            F_PROFILE(inlet_face,thread_in,index)=inlet_yi;
          }
        }
          end_f_loop(inlet_face,thread_in)   

      Message0("%f\n",inlet_yi);                     
     #endif
          }
6楼2012-04-01 22:55:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kylafree

至尊木虫 (知名作家)

你连你的东西是干什么的都没说你让别人怎么试
7楼2012-04-01 22:57:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dhw0075

木虫 (知名作家)

至尊木虫

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
臭水沟: 金币+1, 谢谢交流~~ 2012-04-02 18:03:36
jesseliuxl: 金币+2 2012-04-02 19:57:20
在单核求解器中编译UDF,保存dat和case,然后再用并行求解器打开就可以了。

祝福~
学无止境。
10楼2012-04-02 16:40:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 jesseliuxl 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[有机交流] 3-溴吡啶-4-甲醛合成 10+3 雪糕也能爆炸 2026-03-31 9/450 2026-04-06 00:24 by nBu锂
[考研] 机械专硕274求调剂,不挑专业学校 +6 泛泛2333 2026-04-05 7/350 2026-04-05 23:20 by chyhaha
[考研] 283求调剂 +5 baiiyu 2026-04-05 6/300 2026-04-05 20:35 by 啵啵啵0119
[考研] 270分求调剂 +4 maxjxbsk 2026-04-01 4/200 2026-04-05 17:04 by yulian1987
[考研] 0703化学 +12 妮妮ninicgb 2026-04-04 13/650 2026-04-05 10:46 by 啊俊!
[考研] 数一英一 347 人工智能国奖论文都有求调剂 +3 乌拉儿山脉 2026-03-30 7/350 2026-04-05 10:32 by zhq0425
[考研] 调剂 +8 熊二想上岸 2026-04-04 8/400 2026-04-05 05:27 by houyaoxu
[考研] 282电子信息0854专硕调剂 +4 202451007219 2026-04-02 6/300 2026-04-04 21:55 by laoshidan
[考研] 085600调剂 +4 1amJJ 2026-04-02 4/200 2026-04-04 21:53 by hemengdong
[考研] 0703求调剂383分 +8 W55j 2026-04-03 8/400 2026-04-04 20:09 by xhai2011
[考研] 0703求调剂 +6 zizimo 2026-03-31 6/300 2026-04-04 14:16 by 无际的草原
[考研] 一志愿085404,总分291,四级已过,求调剂 +5 阿俊阿俊阿俊 2026-04-04 7/350 2026-04-04 13:23 by 莲菜就是藕吧
[考研] 求材料调剂,一志愿郑州大学289分 +15 硕星赴 2026-04-03 15/750 2026-04-04 01:01 by userper
[考研] 273求调剂 +20 李芷新1 2026-03-31 20/1000 2026-04-03 09:58 by linyelide
[考研] 262求调剂 +6 励志一定发文章 2026-04-02 7/350 2026-04-03 09:54 by linyelide
[考研] 一志愿深大085601材料工程专业(专硕)300分可以调剂去哪 +8 10160315 2026-04-02 8/400 2026-04-03 09:36 by hypershenger
[考研] 312 化工或制药调剂 +8 小小墨123 2026-04-02 9/450 2026-04-03 09:12 by zhouxiaoyu
[考研] 302求调剂 +9 zyx上岸! 2026-04-02 9/450 2026-04-02 23:07 by 马儿快快地跑
[考研] 一志愿西安交大材料学硕(英一数二)347,求调剂到高分子/材料相关专业 +7 zju51 2026-03-31 9/450 2026-04-01 19:35 by CFQZAFU
[考研] 085404 22408 315分 +5 zhuangyan123 2026-03-31 6/300 2026-03-31 13:48 by limeifeng
信息提示
请填处理意见