| 查看: 1555 | 回復(fù): 15 | ||
[求助]
幫忙看下這個udf有問題嗎?初始化沒問題,點計算出錯
|
||
|
幫忙看下這個udf有問題嗎?初始化沒問題,點計算出錯 #include "udf.h" /*包括常規(guī)宏*/ #include "sg_mphase.h" /*包括體積分數(shù)宏*/ #define LAT_HT 2260000 /*定義水蒸汽潛熱*/ #define pi 3.1415 /*圓周率常數(shù)*/ #define R 8314 /*gas constant 8.314j/mol.K*/ #define moleweight 0.018 /*SI unit water mole weight 0.018kg/mol */ #define A 7.19621 #define B 1730.63 #define C 233.426 DEFINE_SOURCE(liq_src, cell, pri_th, dS, eqn) /*定義液相源項*/ { Thread *mix_th, *sec_th; /*混合相、第二相 定義計算區(qū)域指針*/ real m_dot_l; /*蒸發(fā)冷凝速率 定義液相質(zhì)量轉(zhuǎn)移*/ real P_SAT ; mix_th = THREAD_SUPER_THREAD(pri_th); /*指向混合區(qū)的主相即液相的指針*/ sec_th = THREAD_SUB_THREAD(mix_th, 1); /* 指向單相控制區(qū)的氣相的指針*/ P_SAT=exp(A-B/(C_T(cell,pri_th)+C-273.15))*1e3; /*定義飽和蒸汽壓與液相溫度的關(guān)系式,即antoine公式*/ if(C_P(cell, sec_th)< P_SAT) {m_dot_l = -(P_SAT-C_P(cell,sec_th))*sqrt(moleweight)*(2*pi*R*C_T(cell,pri_th)); /*定義液相向氣相轉(zhuǎn)移的速率,如果氣相的壓力小于一定溫度下的飽和蒸汽壓,液相向氣相發(fā)生質(zhì)量轉(zhuǎn)移*/ dS[eqn]= -2*pi*R*sqrt(moleweight)*(P_SAT-P_SAT*C_T(cell,pri_th)*B/pow((C_T(cell,pri_th)+C-273.15),2)-C_P(cell, sec_th)); /*定義源項對質(zhì)量轉(zhuǎn)移偏導(dǎo),fabs為取絕對值*/ } else {m_dot_l = (P_SAT-C_P(cell,sec_th))*sqrt(moleweight)*(2*pi*R*C_T(cell,pri_th)); /*定義液相向氣相轉(zhuǎn)移的速率,如果氣相壓力大于一定溫度下的飽和蒸汽壓,氣相向液相發(fā)生質(zhì)量轉(zhuǎn)移*/ dS[eqn] = 0; /*由于氣相向液相轉(zhuǎn)移,所以液相的質(zhì)量源項對質(zhì)量轉(zhuǎn)移的偏導(dǎo)為零*/ } return m_dot_l; } DEFINE_SOURCE(vap_src, cell, sec_th, dS, eqn) { Thread *mix_th, *pri_th; real m_dot_v; real P_SAT ; mix_th = THREAD_SUPER_THREAD(sec_th); pri_th = THREAD_SUB_THREAD(mix_th, 0); P_SAT=exp(A-B/(C_T(cell,pri_th)+C-273.15))*1e3; if(C_P(cell, sec_th)< P_SAT) { m_dot_v = (P_SAT-C_P(cell,sec_th))*sqrt(moleweight)*(2*pi*R*C_T(cell,pri_th)); dS[eqn] =0; } else {m_dot_v = -(P_SAT-C_P(cell,sec_th))*sqrt(moleweight)*(2*pi*R*C_T(cell,pri_th)); dS[eqn]=-2*pi*R*sqrt(moleweight)*(P_SAT-P_SAT*C_T(cell,pri_th)*B/pow((C_T(cell,pri_th)+C-273.15),2)-C_P(cell, sec_th)); } return m_dot_v; } DEFINE_SOURCE(enrg_src, cell, mix_th, dS, eqn) { Thread *pri_th,*sec_th; real m_dot; real P_SAT; pri_th=THREAD_SUB_THREAD(mix_th,0); sec_th=THREAD_SUB_THREAD(mix_th,1); P_SAT=exp(A-B/(C_T(cell,pri_th)+C-273.15))*1e3; if(C_P(cell, sec_th)< P_SAT) { m_dot =- (P_SAT-C_P(cell,sec_th))*sqrt(moleweight)*(2*pi*R*C_T(cell,pri_th)); dS[eqn]=-2*pi*R*sqrt(moleweight)*(P_SAT-P_SAT*C_T(cell,pri_th)*B/pow((C_T(cell,pri_th)+C-273.15),2)-C_P(cell, sec_th)); } else { m_dot = (P_SAT-C_P(cell,sec_th))*sqrt(moleweight)*(2*pi*R*C_T(cell,pri_th)); dS[eqn]=2*pi*R*sqrt(moleweight)*(P_SAT-P_SAT*C_T(cell,pri_th)*B/pow((C_T(cell,pri_th)+C-273.15),2)-C_P(cell, sec_th)); } return LAT_HT*m_dot; } |
金蟲 (正式寫手)
擊破長空

金蟲 (正式寫手)
擊破長空

金蟲 (正式寫手)
擊破長空
|
這種情況下,建議你對計算的數(shù)據(jù)進行檢查。 你可以采用程序截斷的形式,用Message插入可能出問題的位置前后,看是否能輸出語言與數(shù)據(jù),這樣可以檢測你的程序運行到哪里出現(xiàn)了浮點錯誤。 你還可以用Error語句來控制程序的停止,你可以讓程序運行到任意位置停止,以便不讓程序在每一個控制容積里運行。 出現(xiàn)浮點錯誤的原因,是你計算出現(xiàn)極大或極小值,比0等等。 調(diào)試程序需要耐心與經(jīng)驗,祝你好運! |

金蟲 (正式寫手)
擊破長空

金蟲 (正式寫手)
擊破長空

金蟲 (正式寫手)
擊破長空

| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 306求調(diào)劑 +4 | 來好運來來來 2026-03-22 | 4/200 |
|
|---|---|---|---|---|
|
[考博] 招收博士1-2人 +3 | QGZDSYS 2026-03-18 | 4/200 |
|
|
[基金申請] 山東省面上項目限額評審 +4 | 石瑞0426 2026-03-19 | 4/200 |
|
|
[考研] 【考研調(diào)劑】化學專業(yè) 281分,一志愿四川大學,誠心求調(diào)劑 +11 | 吃吃吃才有意義 2026-03-19 | 11/550 |
|
|
[考研] 求調(diào)劑 +3 | .m.. 2026-03-21 | 4/200 |
|
|
[考研] 070300化學319求調(diào)劑 +7 | 錦鯉0909 2026-03-17 | 7/350 |
|
|
[考研] 307求調(diào)劑 +3 | wyyyqx 2026-03-17 | 3/150 |
|
|
[考研] 332求調(diào)劑 +4 | ydfyh 2026-03-17 | 4/200 |
|
|
[考研] 一志愿 西北大學 ,070300化學學碩,總分287,雙非一本,求調(diào)劑。 +3 | 晨昏線與星海 2026-03-18 | 3/150 |
|
|
[考研] 一志愿中海洋材料工程專碩330分求調(diào)劑 +8 | 小材化本科 2026-03-18 | 8/400 |
|
|
[考研] 324求調(diào)劑 +5 | lucky呀呀呀鴨 2026-03-20 | 5/250 |
|
|
[考研]
|
簡木ChuFront 2026-03-19 | 8/400 |
|
|
[考研] 求調(diào)劑 +3 | @taotao 2026-03-20 | 3/150 |
|
|
[論文投稿]
申請回稿延期一個月,編輯同意了。但系統(tǒng)上的時間沒變,給編輯又寫郵件了,沒回復(fù)
10+3
|
wangf9518 2026-03-17 | 4/200 |
|
|
[考研] 081700化工學碩調(diào)劑 +3 | 【1】 2026-03-16 | 3/150 |
|
|
[考研] 一志愿福大288有機化學,求調(diào)劑 +3 | 小木蟲200408204 2026-03-18 | 3/150 |
|
|
[考研] 328求調(diào)劑,英語六級551,有科研經(jīng)歷 +4 | 生物工程調(diào)劑 2026-03-16 | 12/600 |
|
|
[考研] 085601求調(diào)劑 +4 | Du.11 2026-03-16 | 4/200 |
|
|
[考博] 26申博 +4 | 八6八68 2026-03-16 | 4/200 |
|
|
[考研] 070303 總分349求調(diào)劑 +3 | LJY9966 2026-03-15 | 5/250 |
|