| 5 | 1/1 | 返回列表 |
| 查看: 1665 | 回復(fù): 4 | ||
| 當(dāng)前只顯示滿足指定條件的回帖,點(diǎn)擊這里查看本話題的所有回帖 | ||
ltpreason新蟲 (初入文壇)
|
[求助]
udf程序改為并行
|
|
|
程序的目的是根據(jù)監(jiān)測(cè)點(diǎn)的壓力調(diào)節(jié)入口的質(zhì)量流量,維持監(jiān)測(cè)點(diǎn)的壓力近似恒定,單核計(jì)算時(shí)程序可以用,一旦并行就出錯(cuò),自己試著按幫助里的方法改一直沒(méi)通(比如加#if !HOST #endif之類),懇請(qǐng)各位指點(diǎn),先謝過(guò)了!把自己的金幣全部懸賞! DEFINE_ADJUST(get_p_monitor,d) { Thread *t; cell_t c; real xc[ND_ND];/*網(wǎng)格質(zhì)心坐標(biāo)*/ thread_loop_c(t,d) { begin_c_loop(c,t) { C_CENTROID(xc,c,t); if (sqrt(ND_SUM(pow(xc[0] + 2.,2.), pow(xc[1] -1.3,2.), pow(xc[2]-0.,2.)))<0.01 pressure=C_P(c,t);/*點(diǎn)(-2,1.3,0)為監(jiān)測(cè)點(diǎn),當(dāng)網(wǎng)格質(zhì)心與監(jiān)測(cè)點(diǎn)的距離小于0.01時(shí),認(rèn)為該網(wǎng)格的壓力就是監(jiān)測(cè)點(diǎn)的壓力*/ } end_c_loop(c,t) } printf("\n pressure=%g\n",pressure); } DEFINE_PROFILE(mass_inlet_as_p,t,i) { face_t f; real mass=0.5; if(pressure<=480000.) mass=mass+0.01; else if(pressure>480000.&&.pressure<520000.)/*根據(jù)監(jiān)測(cè)點(diǎn)的壓力調(diào)節(jié)入口質(zhì)量流量*/ mass=mass; else mass=mass-0.01; begin_f_loop(f,t) { F_PROFILE(f,t,i)=mass; } end_f_loop(f,t) printf("\n pressure=%g\n",pressure); } 如果一并行,每計(jì)算一步會(huì)出現(xiàn)四個(gè)壓力值(我用四核并行),其中一個(gè)為真實(shí)值,另三個(gè)是0,然后到下面用壓力判斷質(zhì)量流量時(shí)用的一直是那個(gè)0的壓力,所以就流量一直升高。 |
新蟲 (初入文壇)
新蟲 (初入文壇)
新蟲 (初入文壇)
|
DEFINE_ADJUST(get_p_monitor,d) { Thread *t; cell_t c; real xc[ND_ND]; thread_loop_c(t,d) { begin_c_loop(c,t) { C_CENTROID(xc,c,t); if (sqrt(ND_SUM(pow(xc[0] + 2.,2.), pow(xc[1] -1.3,2.), pow(xc[2]-0.,2.)))<0.01 pressure=C_P(c,t); /*你這里前面網(wǎng)格的壓力會(huì)不斷的被后面網(wǎng)格所覆蓋,F(xiàn)luent會(huì)循環(huán)所有網(wǎng)格,所以最后輸出的pressure變量只是最后一個(gè)網(wǎng)格的壓力?砂袰_P(c,t)放在一個(gè)UDM里面(自己查查,不難)*/ } end_c_loop(c,t) } printf("\n pressure=%g\n",pressure); /*由于并行時(shí)流場(chǎng)會(huì)被分為幾份,輸出時(shí)有的區(qū)域的壓力就會(huì)輸出為零。pressure初始化為零?省略了?*/ } DEFINE_PROFILE(mass_inlet_as_p,t,i) { face_t f; real mass=0.5; if(pressure<=480000.) mass=mass+0.01; else if(pressure>480000.&&.pressure<520000.)/*根據(jù)監(jiān)測(cè)點(diǎn)的壓力調(diào)節(jié)入口質(zhì)量流量*/ mass=mass; else mass=mass-0.01; begin_f_loop(f,t) { F_PROFILE(f,t,i)=mass; } end_f_loop(f,t) printf("\n pressure=%g\n",pressure); /*這種寫法輸出不會(huì)崩潰?這里不是每個(gè)網(wǎng)格都輸出?我記得DEFINE_PROFILE會(huì)循環(huán)每個(gè)網(wǎng)格,也就是每個(gè)網(wǎng)格應(yīng)該都會(huì)執(zhí)行printf啊?*/ } |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 085600材料與化工調(diào)劑 +10 | kikiki7 2026-03-30 | 10/500 |
|
|---|---|---|---|---|
|
[考研] 085602化工求調(diào)劑(331分) +8 | 111@127 2026-03-30 | 8/400 |
|
|
[考研] 288資源與環(huán)境專碩求調(diào)劑,不限專業(yè),有學(xué)上就行 +11 | lllllos 2026-03-30 | 11/550 |
|
|
[考研] 303求調(diào)劑 +7 | DLkz1314. 2026-03-30 | 7/350 |
|
|
[考研] 332求調(diào)劑 +14 | 032500 2026-03-25 | 14/700 |
|
|
[考研] 一志愿哈爾濱工業(yè)大學(xué)材料與化工方向336分 +12 | 辰沐5211314 2026-03-26 | 12/600 |
|
|
[考研] 求調(diào)劑 +7 | 研研,接電話 2026-03-24 | 8/400 |
|
|
[考研] 070300一志愿211,312分求調(diào)劑院校 +4 | 小黃鴨寶 2026-03-30 | 4/200 |
|
|
[考研] 282求調(diào)劑 +4 | wcq131415 2026-03-24 | 4/200 |
|
|
[考研] 356求調(diào)劑 +4 | gysy?s?a 2026-03-28 | 4/200 |
|
|
[考研] 本科雙非材料,跨考一志愿華電085801電氣,283求調(diào)劑,任何專業(yè)都可以 +6 | 芝士雪baoo 2026-03-28 | 8/400 |
|
|
[考研] 330分求調(diào)劑 +5 | qzenlc 2026-03-29 | 5/250 |
|
|
[考研] 復(fù)試調(diào)劑 +3 | raojunqi0129 2026-03-28 | 3/150 |
|
|
[考研] 調(diào)劑 +3 | 好好讀書。 2026-03-28 | 3/150 |
|
|
[考研] 070300化學(xué)求調(diào)劑 +4 | 起個(gè)名咋這么難 2026-03-27 | 4/200 |
|
|
[考研] 351求調(diào)劑 +4 | 麥克阿磊 2026-03-24 | 4/200 |
|
|
[考研] 081200-11408-276學(xué)碩求調(diào)劑 +3 | 崔wj 2026-03-26 | 3/150 |
|
|
[考研] 各位老師您好:本人初試372分 +5 | jj涌77 2026-03-25 | 6/300 |
|
|
[考研] 293求調(diào)劑 +7 | 加一一九 2026-03-24 | 7/350 |
|
|
[考研]
|
黃粱一夢(mèng)千年 2026-03-24 | 3/150 |
|