| 查看: 1151 | 回复: 8 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
[求助]
udf编程问题已有2人参与
|
|||
|
最近在使用udf进行编程,主要使用两种宏,difine和profile,程序目的主要是截取三维模型进出口参数利用一维进行计算,三维和一维不断进行相互参数互换。 在difine宏里面插入一部分C++的程序,但是fluent迭代的时候就卡机了,不知道是因为什么原因,想问一下是否是因为C++程序里面使用了do-while语句。 下面是我的源程序 #include "udf.h" real NV_VEC(A); real avg_tempout; real avg_tempin; real sum_T_A=0.0; real sum_A=0.0; real sum_V_A=0.0; real V2; real V1; Thread *thread_out; Thread *thread_in; face_t f; Domain *domain; int i; int j; int k; real q[200]; real F[200]; real F1[200]; real F2[200]; real Y[200]; real Fmax; real pj[200]; real Ar; real Aj; real vj; real zsxs; real dpj[200]; real Ck[3][6]; real ph[6]; real R[6]; real G; real Q[6]; real fjts[6]; real hfy; real f1; real f2; real Ar=80; real Aj=0.8; real vj=30; real zsxs=1; real Ck[3][6]={0,0,0,0,0,0,0,1,0,1,-1,0,0,0,1,1,0,-1}; real R[6]={0,0.02,0.02,0.01,0.02,0.02}; real fjts[6]={0,6,12,0,0,0}; real Ph[6]={0,0,0,0,0,0}; real Q[6]={0,295,20,15,5,280}; DEFINE_ADJUST(inlet_T,d) { domain=Get_Domain(1); thread_in=Lookup_Thread(domain,6); begin_f_loop(f,thread_in) { F_AREA(A,f,thread_in); sum_A+=NV_MAG(A); sum_T_A+=NV_MAG(A)*F_T(f, thread_in); } end_f_loop(f,thread_in) avg_tempin=sum_T_A/sum_A; } DEFINE_ADJUST(inlet_v,d) { domain=Get_Domain(1); thread_in=Lookup_Thread(domain,6); begin_f_loop(f,thread_in) { F_AREA(A,f,thread_in); sum_A+=NV_MAG(A); sum_V_A+=NV_MAG(A)*F_W(f,thread_in); } end_f_loop(f,thread_in); V1=sum_V_A/sum_A; } DEFINE_ADJUST(outlet_T,d) {domain=Get_Domain(1); thread_out=Lookup_Thread(domain,5); begin_f_loop(f,thread_out) { F_AREA(A,f,thread_out); sum_A+=NV_MAG(A); sum_T_A+=NV_MAG(A)*F_T(f, thread_out); } end_f_loop(f,thread_out) avg_tempout=sum_T_A/sum_A; } DEFINE_ADJUST(outlet_v,d) { domain=Get_Domain(1); thread_out=Lookup_Thread(domain,5); begin_f_loop(f,thread_out) { F_AREA(A,f,thread_out); sum_A+=NV_MAG(A); sum_V_A+=NV_MAG(A)*F_W(f,thread_out); } end_f_loop(f,thread_out); V2=sum_V_A/sum_A; f1=101000*29/8.314/avg_tempin; f2=101000*29/8.314/avg_tempout; Ph[1]=0.5*f1*V2*V2-0.5*f2*V1*V1+0.5*9.8*12*f1-0.5*9.8*12*f2; for(i=1;i<=200;i++) F=0.0; for(i=1;i<=200;i++) F1=0.0; for(i=1;i<=200;i++) F2=0.0; for(i=1;i<=200;i++) Y=0.0; for(i=1;i<=200;i++) q=10000.0; for(i=1;i<=200;i++) pj=0.0; for(i=1;i<=5;i++) { pj=fjts*(-1.2*vj*Aj*zsxs*fabs(Q)/Ar/Ar+1.2*vj*Aj*zsxs*vj/Ar); dpj=fjts*(-1.2*vj*Aj*zsxs/Ar/Ar);} do{for(i=1;i<=2;i++) { F=0; Y=0; for(j=1;j<=5;j++) { F=F+Ck[j]*R[j]*Q[j]*fabs(Q[j])-Ck[j]*pj[j]; Y=Y+2*Ck[j]*Ck[j]*R[j]*fabs(Q[j])-Ck[j]*Ck[j]*dpj[j];} q=-F/Y; for(j=1;j<=5;j++) {if(Ck[j]>0) Q[j]=Q[j]+q; else if(Ck[j]<0) Q[j]=Q[j]-q; } F1=0; F2=0; for(j=1;j<=5;j++) {if(Ck[j]/Q[j]>0) F1=F1+Ck[j]*R[j]*Q[j]*fabs(Q[j]);} for(j=1;j<=5;j++) {if(Ck[j]/Q[j]<0) F2=F2+Ck[j]*R[j]*Q[j]*fabs(Q[j]);} for(j=1;j<=5;j++) {if(Ck[j]*Ph[6]<0) F1=F1-Ck[j]*Ph[6];} for(j=1;j<=5;j++) {if(Ck[j]*Ph[6]>0) F2=F2-Ck[j]*Ph[6];} for(j=1;j<=5;j++) {if(Ck[j]*pj[j]<0) F1=F1-Ck[j]*pj[j];} for(j=1;j<=5;j++) {if(Ck[j]*pj[j]>0) F2=F2-Ck[j]*pj[j];} for(j=1;j<=5;j++) { pj[j]=fjts[j]*(-1.2*vj*Aj*zsxs*fabs(Q[j])/Ar/Ar+1.2*vj*Aj*zsxs*vj/Ar); dpj[j]=fjts[j]*(-1.2*vj*Aj*zsxs/Ar/Ar); } } Fmax=0; for(k=1;k<=2;k++) {if(fabs(fabs(F1[k]/F2[k])-1)>Fmax) Fmax=fabs(fabs(F1[k]/F2[k])-1); } } while(Fmax>0.0001); DEFINE_PROFILE(in,thread,position) { begin_f_loop(f,thread) { if(fabs((Q[1]-295)/295)>0.1) F_PROFILE(f,thread,position)=Q[1]; else F_PROFILE(f,thread,position)=Q[1]/50; Message("\\nQ = %g\\n",Q[1]); } end_f_loop(f,thread) } DEFINE_PROFILE(out,thread,position) { begin_f_loop(f,thread) { if(fabs((Q[1]-295)/295)>0.1) F_PROFILE(f,thread,position)=Q[1]; else F_PROFILE(f,thread,position)=Q[1]*Q[1]/80/80; Message("\\nQ = %g\\n",Q[1]); } end_f_loop(f,thread) } 麻烦大神帮忙看看是因为什么原因程序不能正常运行 |
» 猜你喜欢
申请26博士
已经有5人回复
职称评审没过,求安慰
已经有22人回复
垃圾破二本职称评审标准
已经有15人回复
投稿Elsevier的Neoplasia杂志,到最后选publishing options时页面空白,不能完成投稿
已经有20人回复
EST投稿状态问题
已经有7人回复
毕业后当辅导员了,天天各种学生超烦
已经有4人回复
聘U V热熔胶研究人员
已经有10人回复
求助文献
已经有3人回复
投稿返修后收到这样的回复,还有希望吗
已经有8人回复
三无产品还有机会吗
已经有6人回复
匿名
用户注销 (小有名气)
- 应助: 31 (小学生)
- 金币: 1248.2
- 散金: 68
- 红花: 7
- 帖子: 220
- 在线: 78.3小时
- 虫号: 0
- 注册: 2015-01-18
- 专业: 工程热物理与能源利用
3楼2016-06-23 09:07:42
mycc
专家顾问 (正式写手)
-

专家经验: +181 - 应助: 230 (大学生)
- 金币: 2589.6
- 红花: 35
- 帖子: 531
- 在线: 58.8小时
- 虫号: 881523
- 注册: 2009-10-23
- 性别: GG
- 专业: 流体力学
- 管辖: 仿真模拟

2楼2016-06-23 08:07:09
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
感谢参与,应助指数 +1
月只蓝: 金币-100, 应助指数-2, 屏蔽内容, 违规存档, 多次用完全一样、无实质性帮助的内容,回复不同应助帖! 2017-03-24 11:15:47
感谢参与,应助指数 +1
月只蓝: 金币-100, 应助指数-2, 屏蔽内容, 违规存档, 多次用完全一样、无实质性帮助的内容,回复不同应助帖! 2017-03-24 11:15:47
|
本帖内容被屏蔽 |
4楼2016-06-24 08:56:45
5楼2016-06-27 09:30:32













回复此楼