24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 2068  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 298调剂 +3 jiyingjie123 2026-03-27 3/150 2026-03-27 11:57 by wxiongid
[考研] 求调剂推荐 材料 304 +10 荷包蛋hyj 2026-03-26 10/500 2026-03-27 11:51 by 帕尔马拉特
[考研] 312求调剂 +9 上岸吧ZJY 2026-03-22 13/650 2026-03-27 11:24 by sanrepian
[考研] 一志愿武汉理工,总分321,英一数二,求老师收留。 +5 nnnnnnn5 2026-03-25 5/250 2026-03-27 04:42 by wxiongid
[考研] 329求调剂 +7 钮恩雪 2026-03-25 7/350 2026-03-27 04:28 by wxiongid
[考研] 304材料求调剂 +4 钟llll 2026-03-26 4/200 2026-03-27 03:42 by wxiongid
[考研] 071000生物学求调剂,初试成绩343 +6 小小甜面团 2026-03-25 6/300 2026-03-26 23:01 by 不吃魚的貓
[考研] 340求调剂 +3 Amber00 2026-03-26 3/150 2026-03-26 18:57 by 不吃魚的貓
[考研] 315分求调剂 +5 26考研上岸版26 2026-03-26 5/250 2026-03-26 12:11 by laoshidan
[考研] 0854电子信息求调剂 +7 α____ 2026-03-22 9/450 2026-03-25 13:37 by α____
[考研] 318求调剂 +5 plum李子 2026-03-21 8/400 2026-03-25 09:26 by aa331100
[考研] 上海电力大学材料防护与新材料重点实验室招收调剂研究生(材料、化学、电化学,环境) +4 我爱学电池 2026-03-23 4/200 2026-03-25 00:59 by 1027_324
[考研] 300分,材料,求调剂,英一数二 +5 超赞的 2026-03-24 5/250 2026-03-24 21:07 by 星空星月
[考研] 一志愿吉大化学322求调剂 +4 17501029541 2026-03-23 6/300 2026-03-24 10:21 by 戴围脖的小蚊子
[考研] 一志愿山东大学药学学硕求调剂 +3 开开心心没烦恼 2026-03-23 4/200 2026-03-24 00:06 by 开开心心没烦恼
[考研] 一志愿国科过程所081700,274求调剂 +3 三水研0水立方 2026-03-23 3/150 2026-03-23 23:11 by MajorWen
[考研] 求老师收我 +3 zzh16938784 2026-03-23 3/150 2026-03-23 12:56 by ztnimte
[考研] 297求调剂 +3 喜欢还是不甘心 2026-03-20 3/150 2026-03-21 18:33 by 学员8dgXkO
[考研] 材料与化工(0856)304求 B区 调剂 +3 邱gl 2026-03-21 3/150 2026-03-21 13:47 by lature00
[考研] 一志愿南理工085701环境302求调剂院校 +3 葵梓卫队 2026-03-20 3/150 2026-03-20 19:28 by zhukairuo
信息提示
请填处理意见