24小时热门版块排行榜    

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

buwangchuxin

新虫 (小有名气)

[求助] 70个金币求帮忙讲一个udf改写为并行的udf

下面是原来的udf,描述的是对壁面添加一个质量源项,由于迭代所需时间太长需要改为并行,哪位大侠帮帮忙吧!!!!多谢了

#include"udf.h"
#include"mem.h"
#define D 1.82e-5
#define v1 360
#define r 1.0E-5
DEFINE_ADJUST(adsorption_adjust, domain)
{  
        cell_t c0;
        Thread* t0;
        Thread* wall_thread;
        face_t wall =6;
    real A[ND_ND] ;
    real x[ND_ND] ;
        real At;
        real J,C;
        wall_thread= Lookup_Thread(domain,wall);
        begin_f_loop (wall, wall_thread)
        {         
    c0  = F_C0(wall,wall_thread);
        t0 = F_C0_THREAD(wall,wall_thread);
    C_CENTROID(x,c0,t0);
        C=C_YI(c0,t0,0)*1000;
    J=(-r*v1/4)/(1+r*v1/4*x[1]/D)*C;
    F_AREA(A,wall, wall_thread);
    At = NV_MAG(A);
        C_UDMI(c0,t0,0)=At;
        C_UDMI(c0,t0,1)=C_VOLUME(c0,t0);
        C_UDMI(c0, t0,2) = J*At/C_VOLUME(c0,t0);
    }
        end_f_loop (wall,wall_thread)
}
DEFINE_SOURCE(mass_source,c,t,dS,eqn)
{   
        real source ;
        source= C_UDMI(c,t,2) ;
        dS[eqn]=0 ;
        return source;
}
回复此楼

» 猜你喜欢

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

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

znon

金虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
感谢参与,应助指数 +1
xiegangmai: 金币+2, 谢谢参与! 2013-02-28 11:34:09
buwangchuxin: 金币+100 2013-03-04 19:33:30
单纯从程序来看,不需要大改动。你看看下面的程序能否运行。

#include"udf.h"
#include"mem.h"
#define D 1.82e-5
#define v1 360
#define r 1.0E-5
DEFINE_ADJUST(adsorption_adjust, domain)
{  
  #if !RP_HOST
        cell_t c0;
        Thread* t0;
        Thread* wall_thread;
        face_t wall =6;
                real A[ND_ND] ;
                real x[ND_ND] ;
        real At;
        real J,C;
        wall_thread= Lookup_Thread(domain,wall);
        begin_f_loop (wall, wall_thread)
        {         
                        c0  = F_C0(wall,wall_thread);
                        t0 = F_C0_THREAD(wall,wall_thread);
                        C_CENTROID(x,c0,t0);
                        C=C_YI(c0,t0,0)*1000;
                        J=(-r*v1/4)/(1+r*v1/4*x[1]/D)*C;
                        F_AREA(A,wall, wall_thread);
                        At = NV_MAG(A);
                        C_UDMI(c0,t0,0)=At;
                        C_UDMI(c0,t0,1)=C_VOLUME(c0,t0);
                        C_UDMI(c0, t0,2) = J*At/C_VOLUME(c0,t0);
                }
        end_f_loop (wall,wall_thread)
  #endif
}
DEFINE_SOURCE(mass_source,c,t,dS,eqn)
{  
   #if !RP_HOST  
        real source ;
        source= C_UDMI(c,t,2) ;
        dS[eqn]=0 ;
        return source;
  #endif
}
3楼2013-02-26 16:27:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 3 个回答

buwangchuxin

新虫 (小有名气)

高手指教一下吧!!!!
2楼2013-02-26 13:46:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见