24小时热门版块排行榜    

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

princekeal

银虫 (小有名气)

[求助] 有没有精通FLUENT并行计算过程中数据交换的大神?请教一下!

楼主在模型中启用了VOF模型,并且使用了并行计算,启用了6个进程。

现在楼主需要寻找模型中距离某一个点(这个点是虚拟的,并不在模型中)最近的点。这个最近点的坐标将会用到后续的source中。

在并行计算中每个部分都是独立计算的,各个部分都有自己的一套变量,相互不会影响。通过简单的loop宏楼主可以找到每个部分距离“某一点”最近的点和对应的距离。

这样通过比较这六个距离的大小,就能找到真正的最近点了。这个点可能位于任何一个node中。

但是楼主需要这个点的坐标进行进一步的计算,所以必须把这个点的坐标传递到其他node中才行。

按照FLUENT中的说明,只有node0才能向host节点传递数据,所以楼主希望这样实现把位置坐标传递到其他node中:

nodeX----》node0-----》host------》其他所有node(如果最近点恰好在node0中则只需要node0-----》host------》其他所有node)

但是在实际计算过程中一开始计算程序就崩溃,不知道问题出现在哪……

下面是楼主编写的UDF:

DEFINE_ADJUST(heatinput_control,domain)
{
real EFFI=0.65; /*EFFI是理论上想达到的热输入水平*/
real GSUMI,Gdmin,dmin=10;
real center[3];
int i=N_ITER;
int N;
#if !RP_HOST
Thread *t,**pt;
cell_t c;
real SUMI=0,time=CURRENT_TIME,temp,vloss,temp0=300,vn,d,h=0.002;
real x[ND_ND];
#endif
#if !RP_HOST
thread_loop_c(t,domain)
{begin_c_loop_int(c,t)
{
        SUMI+=C_VOLUME(c,t)*C_UDMI(c,t,12);
}
end_c_loop_int(c,t)}
#if RP_NODE
GSUMI=PRF_GRSUM1(SUMI);
#endif
#endif
node_to_host_real_1(GSUMI);
#if !RP_NODE
        if(GSUMI>(1.01*0.5*EFFI*U*I))
                EFF=EFF*0.9952;
        else if(GSUMI<=(1.01*0.5*EFFI*U*I)&&GSUMI>=(0.99*0.5*EFFI*U*I))
                EFF=EFF;
        else EFF=EFF*1.00478;
        if(i%10==0)
{Message("GSUMI=%f\n",GSUMI);
        Message("EFF=%f\n",EFF);}
#endif
host_to_node_real_1(EFF);

#if !RP_HOST
mp_thread_loop_c(t,domain,pt)
        {Thread *p_phase=pt[1];
        begin_c_loop_int(c,t)
{C_CENTROID(x,c,t);
        if(C_VOF(c,p_phase)>0.3&&C_VOF(c,p_phase)<=1&&C_UDMI(c,t,5)>=1500&&x[1]>=0&&x[1]<=0.00011)
        {
d=sqrt(pow(x[0]-v*time-x0,2)+x[1]*x[1]+pow(x[2]-0.0015-h,2));
C_UDMI(c,t,31)=d;
        if(d<=dmin)
        {dmin=d;
        center[0]=x[0];
        center[0]=x[0];
        center[1]=x[1];
        center[2]=x[2];
        }
        }
}
end_c_loop_int(c,t)
}
#if RP_NODE
Gdmin=PRF_GRLOW1(dmin);
Message("dmin=%f\n",dmin);
Message("Gdmin=%f\n",Gdmin);
#endif
#endif

#if RP_NODE
if(!I_AM_NODE_ZERO_P)
{if(dmin==Gdmin)
PRF_CSEND_REAL(node_zero,center,3,myid);
}
#endif

#if RP_NODE
if(I_AM_NODE_ZERO_P)
{
        compute_node_loop_not_zero(N)
        {PRF_CRECV_REAL(N,center,3,N);
        }
PRF_CSEND_REAL(node_host,center,3,myid);
free(center);
}
#endif

#if RP_HOST
compute_node_loop(N)
{PRF_CRECV_REAL(node_zero,center,3,node_zero);
}
host_to_node_real(center,3);
#endif


#if !RP_HOST
mp_thread_loop_c(t,domain,pt)
        {Thread *p_phase=pt[1];
begin_c_loop(c,t)
{C_CENTROID(x,c,t);
temp=C_T(c,t);
vn=C_U(c,t)*C_UDMI(c,t,6)+C_V(c,t)*C_UDMI(c,t,7)+C_W(c,t)*C_UDMI(c,t,8);
C_UDMI(c,t,30)=vn;
if(C_VOF(c,p_phase)>0.3&&C_VOF(c,p_phase)<=1&&C_UDMI(c,t,5)>=1500)
{if(vn<0)
C_UDMI(c,t,29)=fabs(vn)*1.225*1006*(temp-temp0)*2*C_UDMI(c,t,5);
else
        C_UDMI(c,t,29)=0;
if(x[0]-v*time-x0>=0)
C_UDMI(c,t,12)=6*EFF*I*U/(PI*(af1+ar1)*bh1)*exp(-3*(x[0]-center[0])*(x[0]-center[0])/(af1*af1))*exp(-3*x[1]*x[1]/(bh1*bh1))*2*C_UDMI(c,t,5);
else if(x[0]-v*time-x0<0)
C_UDMI(c,t,12)=(6*EFF*I*U/(PI*(af1+ar1)*bh1)*exp(-3*pow((x[0]-center[0])/ar1,2))*exp(-3*pow(x[1]/bh1,2)))*2*C_UDMI(c,t,5);
else
        C_UDMI(c,t,12)=0;}
else
{C_UDMI(c,t,12)=0;
C_UDMI(c,t,29)=0;}
}
end_c_loop(c,t)
}
#endif
}
回复此楼

» 猜你喜欢

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

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

princekeal

银虫 (小有名气)

2楼2015-05-01 20:02:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

拆弹专家

木虫 (正式写手)

楼主厉害!楼主这些语句在哪学的?

[ 发自手机版 http://muchong.com/3g ]
3楼2015-05-02 18:55:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 princekeal 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 291求调剂 +11 hhhhxn.. 2026-03-23 16/800 2026-03-27 14:14 by hhhhxn..
[考研] 085602 化工专硕 338分 求调剂 +5 路痴小琪 2026-03-27 5/250 2026-03-27 13:09 by yhmsz
[考研] 22408 359分调剂 +3 Qshers 2026-03-27 3/150 2026-03-27 12:22 by wxiongid
[考研] 298调剂 +3 jiyingjie123 2026-03-27 3/150 2026-03-27 11:57 by wxiongid
[考研] 调剂 +3 李嘉图·S·路 2026-03-27 3/150 2026-03-27 11:19 by wangjy2002
[考研] 0856材料专硕353求调剂 +9 NIFFFfff 2026-03-20 9/450 2026-03-27 10:13 by dick_runner
[考研] 275求调剂 +10 Micky11223 2026-03-25 12/600 2026-03-27 09:41 by caszguilin
[考研] 343求调剂 +4 赠我一本书 2026-03-23 4/200 2026-03-27 00:40 by wxiongid
[考研] 351求调剂 +4 麦克阿磊 2026-03-24 4/200 2026-03-27 00:32 by wxiongid
[考研] 一志愿华理,数一英一285求A区调剂 +8 AZMK 2026-03-25 10/500 2026-03-26 22:37 by 学员8dgXkO
[考研] 321求调剂 +6 wasdssaa 2026-03-26 6/300 2026-03-26 20:57 by sanrepian
[考研] 寻找调剂 +5 倔强芒? 2026-03-21 8/400 2026-03-26 13:25 by 0906ljy
[考研] 化学调剂一志愿上海交通大学336分-本科上海211 +4 小鱼爱有机 2026-03-25 4/200 2026-03-26 10:19 by aa331100
[考研] 318求调剂 +5 plum李子 2026-03-21 8/400 2026-03-25 09:26 by aa331100
[考研] 311求调剂 +3 冬十三 2026-03-24 3/150 2026-03-24 21:31 by peike
[考研] 求调剂 +6 研研,接电话 2026-03-24 7/350 2026-03-24 17:01 by barlinike
[考研] 材料专硕331求调剂 +4 鲜当牛 2026-03-24 4/200 2026-03-24 15:58 by JourneyLucky
[考研] 一志愿河北工业大学0817化工278分求调剂 +7 jhybd 2026-03-23 12/600 2026-03-24 09:03 by jhybd
[基金申请] 请教下大家 2026年国家基金申请是双盲审吗? +3 lishucheng1 2026-03-22 5/250 2026-03-24 08:22 by gltch
[考研] 求调剂 +4 要好好无聊 2026-03-21 4/200 2026-03-21 18:57 by 学员8dgXkO
信息提示
请填处理意见