24小时热门版块排行榜    

查看: 1157  |  回复: 3

fww2008

木虫 (小有名气)

[求助] 单机多核并行计算下,该怎样对下列UDF中的DEFINE_ADJUST和DEFINE_SOURCE进行修改? 已有1人参与

在线等,望指教,谢谢!
DEFINE_ADJUST(area_density, domain)
{
  Thread *t;
  Thread **pt;
  cell_t c;
  Domain *pDomain = DOMAIN_SUB_DOMAIN(domain,P_PHASE);
  real voidx, voidy, voidz=0;
  
   
  {
          Alloc_Storage_Vars(pDomain,SV_VOF_RG,SV_VOF_G,SV_NULL);
          Scalar_Reconstruction(pDomain, SV_VOF,-1,SV_VOF_RG,NULL);
          Scalar_Derivatives(pDomain,SV_VOF,-1,SV_VOF_G,SV_VOF_RG,Vof_Deriv_Accumulate);
  }
                        
  {
      Alloc_Storage_Vars(domain, SV_T_RG, SV_T_G,  SV_NULL);
      T_derivatives(domain);
      Free_Storage_Vars(domain, SV_T_RG, SV_NULL);
  }
                     
      mp_thread_loop_c (t,domain,pt)
        if (FLUID_THREAD_P(t))
          {
            Thread *tp = pt[P_PHASE];

            begin_c_loop (c,t)
                {
#if RP_3D
        C_UDMI(c,t,0) = -(C_VOF_G(c,tp)[0]*C_T_G(c,t)[0]+C_VOF_G(c,tp)[1]*C_T_G(c,t)[1]+C_VOF_G(c,tp)[2]*C_T_G(c,t)[2]);
#endif

#if RP_2D
        C_UDMI(c,t,0) = -(C_VOF_G(c,tp)[0]*C_T_G(c,t)[0]+C_VOF_G(c,tp)[1]*C_T_G(c,t)[1]);
#endif
            }
                end_c_loop (c,t)
      }
        Free_Storage_Vars(pDomain,SV_VOF_RG,SV_VOF_G,SV_NULL);
        Free_Storage_Vars(domain, SV_T_G, SV_NULL);
}

DEFINE_SOURCE(liquid_source,c,thread,dS,eqn)
{
        real source;
        real DAB,Dt;
        Thread *tm=THREAD_SUPER_THREAD(thread);
        Thread **pt=THREAD_SUB_THREADS(tm);

        Dt=(0.09/0.7)*C_K(c,thread)*C_K(c,thread)/C_D(c,thread);
        DAB=Dt + diffu;
        source = DAB * C_R(c,pt[1]) * C_UDMI(c,tm,0);
        C_UDMI(c,tm,1)=source;
       
        dS[eqn]=diffu*C_UDMI(c,tm,0);               
        return source;
}
回复此楼

» 猜你喜欢

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

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

fww2008

木虫 (小有名气)

顶一下

[ 发自手机版 http://muchong.com/3g ]
2楼2015-01-27 13:21:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fww2008

木虫 (小有名气)

内容已删除
加油!
3楼2015-01-27 13:22:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

死天

专家顾问 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
fww2008: 金币+10, 有帮助, 嗯,好的,这就去看看,非常感谢! 2015-01-27 14:41:22
你可以参考看一下7.6. Limitations of Parallel UDFs(fluent udf指导的例子)

如果不是涉及全局变量,就不需要额外的调用并行语句。
4楼2015-01-27 14:14:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 fww2008 的主题更新
信息提示
请填处理意见