| 9 | 1/1 | 返回列表 |
| 查看: 1214 | 回復: 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) } 麻煩大神幫忙看看是因為什么原因程序不能正常運行 |
專家顧問 (正式寫手)
![]() |
專家經驗: +181 |

用戶注銷 (小有名氣)
|
本帖內容被屏蔽 |
專家顧問 (正式寫手)
![]() |
專家經驗: +181 |

| 9 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 材料專碩 085600求調劑 +7 | BBQ233 2026-03-30 | 7/350 |
|
|---|---|---|---|---|
|
[考研] 材料調劑 +11 | 匹克i 2026-03-23 | 11/550 |
|
|
[考研] 311求調劑 +5 | 藍月亮亮 2026-03-30 | 5/250 |
|
|
[考研] 085602化工求調劑(331分) +6 | 111@127 2026-03-30 | 6/300 |
|
|
[考研] 材料工程專碩求調劑 +6 | hyl3153942 2026-03-29 | 6/300 |
|
|
[考研] 343求調劑085601 +3 | 要努力學習x 2026-03-29 | 3/150 |
|
|
[考研] 2026年華南師范大學歡迎化學,化工,生物,生醫(yī)工等專業(yè)優(yōu)秀學子加入! +3 | llss0711 2026-03-28 | 6/300 |
|
|
[考研] 調劑考研 +3 | 王杰一 2026-03-29 | 3/150 |
|
|
[碩博家園] 招收生物學/細胞生物學調劑 +4 | IceGuo 2026-03-26 | 5/250 |
|
|
[考研] 一志愿太原理工安全工程300分,求調劑 +5 | 0857求調劑. 2026-03-24 | 6/300 |
|
|
[考研] 312,生物學求調劑 +3 | 小譯同學abc 2026-03-28 | 3/150 |
|
|
[考研] 復試調劑 +3 | raojunqi0129 2026-03-28 | 3/150 |
|
|
[考研]
|
y7czhao 2026-03-26 | 10/500 |
|
|
[考研] 317求調劑 +6 | 十閑wx 2026-03-24 | 6/300 |
|
|
[考研] 315調劑 +4 | 0860求調劑 2026-03-26 | 5/250 |
|
|
[考研] 求調劑 一志愿 本科 北科大 化學 343 +6 | 13831862839 2026-03-24 | 7/350 |
|
|
[考研]
材料調劑
5+4
|
想要一壺桃花水 2026-03-25 | 10/500 |
|
|
[考研] 334分 一志愿武理-080500 材料求調劑 +4 | 李李不服輸 2026-03-25 | 4/200 |
|
|
[考研] 各位老師您好:本人初試372分 +5 | jj涌77 2026-03-25 | 6/300 |
|
|
[考研] 344求調劑 +3 | desto 2026-03-24 | 3/150 |
|