| 5 | 1/1 | 返回列表 |
| 查看: 1217 | 回復(fù): 8 | |||
| 當(dāng)前只顯示滿足指定條件的回帖,點(diǎn)擊這里查看本話題的所有回帖 | |||
yxy657828314新蟲 (初入文壇)
|
[求助]
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 |

專家顧問 (正式寫手)
![]() |
專家經(jīng)驗(yàn): +181 |

用戶注銷 (小有名氣)
|
本帖內(nèi)容被屏蔽 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 求收留 +6 | 1943443204 2026-03-28 | 6/300 |
|
|---|---|---|---|---|
|
[考研] 一志愿南昌大學(xué)324求調(diào)劑 +9 | hanamiko 2026-03-27 | 9/450 |
|
|
[考研] 生物學(xué) 296 求調(diào)劑 +5 | 朵朵- 2026-03-26 | 7/350 |
|
|
[考研] 085701求調(diào)劑初試286分 +5 | secret0328 2026-03-28 | 5/250 |
|
|
[考研] 材料與化工304求B區(qū)調(diào)劑 +4 | 邱gl 2026-03-26 | 7/350 |
|
|
[考研] 290求調(diào)劑 +3 | dfffsar 2026-03-29 | 3/150 |
|
|
[考研] 275求調(diào)劑 +15 | Micky11223 2026-03-25 | 20/1000 |
|
|
[考研] 327求調(diào)劑 +6 | 汲亦昊 2026-03-29 | 6/300 |
|
|
[考研] 一志愿太原理工安全工程300分,求調(diào)劑 +5 | 0857求調(diào)劑. 2026-03-24 | 6/300 |
|
|
[考研] 304求調(diào)劑 +6 | 曼殊2266 2026-03-27 | 6/300 |
|
|
[考研] 材料277求調(diào)劑 +7 | min3 2026-03-24 | 7/350 |
|
|
[考研] 308求調(diào)劑 +7 | 墨墨漠 2026-03-27 | 7/350 |
|
|
[考研] 0703化學(xué)求調(diào)劑,各位老師看看我。! +5 | 祁祺祺 2026-03-25 | 5/250 |
|
|
[考研]
|
18419759900 2026-03-25 | 8/400 |
|
|
[考研] 考研調(diào)劑 +9 | 小蠟新筆 2026-03-26 | 9/450 |
|
|
[考研] 0703化學(xué)338求調(diào)劑! +6 | Zuhui0306 2026-03-26 | 7/350 |
|
|
[考研] 081200-11408-276學(xué)碩求調(diào)劑 +3 | 崔wj 2026-03-26 | 3/150 |
|
|
[考研] 085601求調(diào)劑總分293英一數(shù)二 +4 | 鋼鐵大炮 2026-03-24 | 4/200 |
|
|
[考研] 302求調(diào)劑 +4 | 錦衣衛(wèi)藤椒 2026-03-25 | 4/200 |
|
|
[考研] 一志愿北化315 求調(diào)劑 +3 | akrrain 2026-03-24 | 3/150 |
|