24小时热门版块排行榜    

CyRhmU.jpeg
查看: 3279  |  回复: 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的回帖

烟雨笑清风

金虫 (小有名气)

引用回帖:
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并行和单机多核并行有啥区别?可以给我解答一下吗?谢谢你
爱拼才会赢
19楼2015-01-07 19:26:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 23 个回答

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的回帖
信息提示
请填处理意见