24小时热门版块排行榜    

查看: 1644  |  回复: 3

wzwyl2010

新虫 (初入文坛)

[求助] UDF并行编译求助-附程序段

单核编译UDF成功计算 为了提高计算速度现在对udf并行编译 由于程序段较多,涉及宏 DEFINE_ADJUST 、DEFINE_SOURCE 、DEFINE_PROFILE、DEFINE_DIFFUSIVITY、Message以及sum求和等并行编译起来比较麻烦。Help里有介绍并行编译时,如果涉及HOST和NODE之间的数据交换以及在求和时候,在程序段加一些并行宏如#if !RP_HOST、#if !RP_NODE、node_to_host_real_2等,不知道怎么定义是否有数据交换,即添加宏的原则,如下段程序是否存在数据交换,需要怎样添加,谢谢大牛们!!!

DEFINE_ADJUST(mem,domain)
{
Domain*d;
cell_t c;  
Thread*t;   
int MEM=46;
real sum_rmem=0.00;
real rmem;
int i=0;

t=Lookup_Thread(domain,MEM);
begin_c_loop(c,t)
{
  
   sum_rmem+=(1.0/(0.5139*C_UDSI(c,t,W_CONT)-0.326)*exp(1268.0*(1.0/303.0-1.0/C_T(c,t)))*0.000025);
   i+=1;
   C_UDMI(c,t,RMEM)=sum_rmem;
}
end_c_loop(c,t)
rmem=sum_rmem/i;
Message("avg_reme= %lf.\n",rmem);


DEFINE_PROFILE(porosity_profile,t,i)   
{
    cell_t c;
    real xc[ND_ND];
    real poro;                  
    real y;                  
    real per;
        real poro_eff;
    begin_c_loop(c,t)
    {
      C_CENTROID(xc,c,t);
      y=xc[0];

      if((y>0.0010&&y<=0.0013)||(y>0.001345&&y<=0.001645))      
       {
        poro=PORO_GDL;  /*扩散层的孔隙率*/
                per=PER_GDL ;/*扩散层的渗透率*/
       }
      else if((y>0.0013&&y<=0.00131)||(y>0.001335&&y<=0.001345))
       {
        poro=PORO_CATA;
                per=PER_CATA;
     
      }
          else if( y>0.00131&&y<=0.001335)
          {
          poro=PORO_M;
          per=1.0E-18;
          
          }
          else
          {
          poro=0.999;
          per=8.0E-7;
          
          }

          C_UDMI(c,t,PORO)=poro;
      C_UDMI(c,t,PER)=per;
            poro_eff=poro*(1-C_UDSI(c,t,DS));
      C_UDMI(c,t,PORO_EFF)=poro_eff;
      C_PROFILE(c,t,i)=C_UDMI(c,t,PORO_EFF);
        }end_c_loop(c,t)
         
}

DEFINE_SOURCE(uds_source,c,t,dS,eqn)
{   
       
        real source;
          source=C_UDMI(c,t,S_VL)*MOL_WEI_LIQ;
        dS[eqn]=0.;
        return source;

}
回复此楼

» 猜你喜欢

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

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

gearboy78

禁虫 (小有名气)

本帖内容被屏蔽

2楼2013-11-14 14:04:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wzwyl2010

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by gearboy78 at 2013-11-14 14:04:37
自己看一下fluent里面并行的模型,计算变量在每个node上都会有一份的,如果是求和sum,那么每个node上的sum得到的只是该node上的求和值,要整体求和还要再调用PRF函数。总之,关键是多看看udf帮助中的并行介绍。

额 对一些概念不是太明白,NODE上有计算变量,这个计算变量在并行计算时候是在分块网格上各自计算,要把这些NODE上的变量都加起来好像需要#if !RP_host,看到论坛上说,单核改并行编译在每句上都加#if !RP_host,不知道这样可以不 感觉这样加很笼统,有些地方可能不需要加,对于我这个程序怎么并行编译分析呢
3楼2013-11-14 15:38:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gearboy78

禁虫 (小有名气)

本帖内容被屏蔽

4楼2013-11-15 10:29:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 学员m2M02a 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 283求调剂 +8 小楼。 2026-03-12 11/550 2026-03-16 09:46 by 无际的草原
[考研] 290求调剂 +5 孔志浩 2026-03-12 10/500 2026-03-16 09:01 by 余晖&
[考研] 321求调剂 +4 大米饭! 2026-03-15 4/200 2026-03-16 08:41 by Linda Hu
[考研] 085600材料与化工 求调剂 +12 enenenhui 2026-03-13 13/650 2026-03-16 08:30 by Linda Hu
[考研] 化学调剂0703 +7 啊我我的 2026-03-11 7/350 2026-03-15 23:03 by 凌千颂111
[考研] 材料工程专硕274一志愿211求调剂 +5 薛云鹏 2026-03-15 5/250 2026-03-15 20:38 by Logic2024
[考研] 274求调剂 +4 时间点 2026-03-13 4/200 2026-03-15 15:29 by Rambo13
[考研] 一志愿郑大070303,338分,求调剂 +4 dadawaf 2026-03-10 5/250 2026-03-14 01:20 by lsw010101
[考研] 求调剂 +6 yfihxh 2026-03-09 6/300 2026-03-14 01:18 by JourneyLucky
[考研] 环境调剂 +6 晓看天暮看云 2026-03-09 6/300 2026-03-14 01:16 by JourneyLucky
[考研] 308求调剂 +3 是Lupa啊 2026-03-10 3/150 2026-03-14 00:30 by JourneyLucky
[考研] 311求调剂 +5 牛乳糖的卡卡 2026-03-10 5/250 2026-03-14 00:05 by JourneyLucky
[考研] 复试调剂 +9 Copy267 2026-03-10 9/450 2026-03-13 23:45 by userper
[考研] 26调剂/材料科学与工程/总分295/求收留 +9 2026调剂侠 2026-03-12 9/450 2026-03-13 20:46 by 18595523086
[考研] 材料与化工085600调剂求老师收留 +9 jiaanl 2026-03-11 9/450 2026-03-13 20:22 by JourneyLucky
[考研] 302求调剂 +6 负心者当诛 2026-03-11 6/300 2026-03-13 16:11 by JourneyLucky
[考研] 求调剂 +3 程雨杭 2026-03-12 3/150 2026-03-13 15:06 by JourneyLucky
[考研] 283求调剂,材料、化工皆可 +8 苏打水7777 2026-03-11 10/500 2026-03-13 09:06 by Linda Hu
[考研] 333求调剂 +3 152697 2026-03-12 4/200 2026-03-13 07:08 by Iveryant
[考研] 纺织、生物、化学、材料相关专业招生了 +4 耶耶业 2026-03-09 7/350 2026-03-12 19:05 by Equinoxhua
信息提示
请填处理意见