| 5 | 1/1 | 返回列表 |
| 查看: 1218 | 回復(fù): 8 | |||
| 當(dāng)前只顯示滿足指定條件的回帖,點(diǎn)擊這里查看本話題的所有回帖 | |||
[求助]
udf編程問題 已有2人參與
|
|||
|
最近在使用udf進(jìn)行編程,主要使用兩種宏,difine和profile,程序目的主要是截取三維模型進(jìn)出口參數(shù)利用一維進(jìn)行計(jì)算,三維和一維不斷進(jìn)行相互參數(shù)互換。 在difine宏里面插入一部分C++的程序,但是fluent迭代的時(shí)候就卡機(jī)了,不知道是因?yàn)槭裁丛颍雴栆幌率欠袷且驗(yàn)镃++程序里面使用了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) } 麻煩大神幫忙看看是因?yàn)槭裁丛虺绦虿荒苷_\(yùn)行 |
專家顧問 (正式寫手)
![]() |
專家經(jīng)驗(yàn): +181 |

用戶注銷 (小有名氣)
|
本帖內(nèi)容被屏蔽 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 一志愿085600中科院寧波所276分求調(diào)劑 +4 | 材料學(xué)257求調(diào)劑 2026-03-28 | 5/250 |
|
|---|---|---|---|---|
|
[考研] 070300化學(xué)279求調(diào)劑 +3 | 哈哈哈^_^ 2026-03-31 | 5/250 |
|
|
[考研] 福建理工大學(xué)材料學(xué)院先進(jìn)合金團(tuán)隊(duì)招收考研調(diào)劑學(xué)生 +3 | 大華金商都 2026-03-30 | 4/200 |
|
|
[考研] 285求調(diào)劑 +6 | AZMK 2026-03-29 | 9/450 |
|
|
[考研] 367求調(diào)劑 +5 | 芋泥啵! 2026-03-28 | 5/250 |
|
|
[考研] 一志愿:西北大學(xué),英一數(shù)一408-284分求調(diào)劑 +5 | 12.27 2026-03-27 | 5/250 |
|
|
[考研] 085600 材料與化工 329分求調(diào)劑 +18 | Mr. Z 2026-03-25 | 19/950 |
|
|
[考研] 322求調(diào)劑 +10 | 宋明欣 2026-03-27 | 10/500 |
|
|
[考研] 291求調(diào)劑 +8 | HanBeiNingZC 2026-03-24 | 8/400 |
|
|
[考研] 324求調(diào)劑 +9 | hanamiko 2026-03-26 | 11/550 |
|
|
[考研] 一志愿中南大學(xué)化學(xué)0703總分337求調(diào)劑 +6 | niko- 2026-03-27 | 6/300 |
|
|
[考研] 290求調(diào)劑 +3 | dfffsar 2026-03-29 | 3/150 |
|
|
[考研] 考研調(diào)劑 +7 | 小蠟新筆 2026-03-29 | 7/350 |
|
|
[考研] 315求調(diào)劑 +4 | akie... 2026-03-28 | 5/250 |
|
|
[考研] 343求調(diào)劑 +5 | 愛羈絆 2026-03-28 | 5/250 |
|
|
[考研] 求調(diào)劑 +6 | 蘆lty 2026-03-25 | 7/350 |
|
|
[考研] 求調(diào)劑 +3 | 劉柯@ 2026-03-24 | 4/200 |
|
|
[考研] 求調(diào)劑 +6 | 林之夕 2026-03-24 | 6/300 |
|
|
[考研] 求調(diào)劑 +3 | 李李不服輸 2026-03-25 | 3/150 |
|
|
[考研] 080500求調(diào)劑 +3 | zzzzfan 2026-03-24 | 3/150 |
|