下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、我接觸UDF的時(shí)間不算長(zhǎng),2007年7月份開(kāi)始看UDF的中文幫助,花了一周時(shí)間大體看完后,第一感覺(jué):不難啊,至少不像以前別人給我講的 很高深的樣子。然后就是 UDF 編程,直到 10 月底吧。然后用的時(shí)間就不多了。然后就是這兩周,我馬上就要研究生畢業(yè)了,可能這周結(jié)束后用 UDF編程的可能性會(huì)很小了,所以想寫點(diǎn)東西,給剛剛學(xué) UDF編程的人,希望對(duì)大家有用。對(duì)于UDF高手,估計(jì)是不用向下看了。UDF 框架光看書,感覺(jué)UDF不難??蠢?,有些看個(gè)四五遍之后才能差不多看懂。原來(lái),得靠 UDF幫助。我主要用的是fluent v6.3自帶的html格式的幫 助,里面東西很全,當(dāng)然也包括 UDF Manu
2、al 。里面自帶的 search 功能相當(dāng)好,只是要注意用好 +或-號(hào)(邏輯符號(hào)),另外,這個(gè)功能似乎有些瀏 覽器支持不太好,不過(guò)基本上用 IE 不太容易出問(wèn)題。對(duì)于從零開(kāi)始學(xué)習(xí)UDF,建議還是先看一下UDF中文幫助,我估計(jì)大家知道的都是馬世虎翻譯的那本吧,感覺(jué)挺好。(沒(méi)想到馬世虎跟我是校友,去年給安世亞太投過(guò)一份簡(jiǎn)歷,他給我打過(guò)電話,當(dāng)時(shí)一陣興奮,呵呵。)1. 對(duì)于只涉及到邊界條件或物性等的 UDF ,一般用 interpret 就可以的,這些我覺(jué)得只需要根據(jù)例子改一下就是了。$對(duì)于要添加UDS方程的,相對(duì)難一點(diǎn)。我編程用的是三到五個(gè)UDS,幾十個(gè)UDM。一開(kāi)始編程時(shí),沒(méi)有頭緒,后來(lái)看別人編
3、的,才慢慢發(fā)現(xiàn) 了一些基本思路。比如,可以用枚舉定義 UDS或UDM,這樣用起來(lái)方便。enumNP,RHOH2O_Y_UP_X,RHOH2O_Y_UP_Y,RHOH2O_Y_UP_Z, N_REQUIRED_UDS;/枚舉UDS變量名對(duì)于 UDM ,則用 N_REQUIRED_UDM 代表個(gè)數(shù)。2. 然后在 INIT 與 ADJUST 函數(shù)中,檢查變量個(gè)數(shù)時(shí)則比較方便,如:DEFINE_INIT(init_parameter,domain)if (n_uds < N_REQUIRED_UDS )Error(" Not enough user defined scalars!(i
4、nit)n");if (n_udm< N_REQUIRED_UDM)Error(" Not enough user defined memories(init)!n");initialise(domain);/ 代表初始化DEFINE_A DJUST(adjust_compute,domain)if (n_uds < N_REQUIRED_UDS )Error(" Not enough user defined scalars!(adjust)n");if (n_udm< N_REQUIRED_UDM)Error("
5、 Not enough user defined memories(adjust)!n");update_parameter(domain);/ 代表主函數(shù)3. 初始化時(shí),則可:cell_t c;Thread *t;int i;thread_loop_c(t,d)if(NNULLP(T HREAD_STORA GE(t,SV_UDS_I(NP)&&NNULLP(T HREA D_STORAGE(t,SV_UDS_I(NP_R) / 為各 UDS 提供存儲(chǔ)空間 begin_c_loop(c, t)for (i=0; i< N_REQUIRED_UDS ; i+)C
6、_UDSI(c,t,i) = 0.0;end_c_loop(c, t);if(NNULLP(T HREAD_STORA GE(t,SV_UDM_I)begin_c_loop(c, t)for (i=0; i< N_REQUIRED_UDM; i+)C_UDMI(c,t,i) = 0.0;end_c_loop(c, t);4. 對(duì)于各 UDM 量,則可:real udm_v;udm_v=0;/ 用之前對(duì)變量進(jìn)行初始化./UDM 相關(guān)運(yùn)行C_UDM l(c,t,UDM_V)= udm_v;把值輸入給UDM,當(dāng)然之前要對(duì)UDM_V進(jìn)行定義用 UDM 有個(gè)好處,一是可以在后處理中顯示, 二是傳遞
7、變量相當(dāng)方便,比如在 ADJUST 中計(jì)算的量用于源項(xiàng)或?qū)α黜?xiàng)等,用 UDM 可以直接調(diào)用。5. 對(duì)于 invalid number 錯(cuò)誤,很多時(shí)候是因?yàn)榉帜笧榱悖绻?xí)慣 UDM 初始化為零,則要注意避免零作分母,可以令其初始化不為零或?yàn)榱銜r(shí)不運(yùn)算(第二種方法比較好)。方程與計(jì)算我編程計(jì)算的是兩相流中一相凝結(jié)成核,需要用 UDS 方程來(lái)模擬其成核有關(guān)變量(不要來(lái)問(wèn)我程序代碼,呵呵)。我覺(jué)得對(duì) UDS 變量控制方程搞 清楚之后,這塊一點(diǎn)兒也不難。一般變量的控制方程( Fluent 能認(rèn)識(shí)的),就是含有瞬態(tài)項(xiàng)(時(shí)間項(xiàng)),對(duì)流項(xiàng),擴(kuò)散項(xiàng)與源項(xiàng)。(方程如何處理 fluent 會(huì)自己弄的)對(duì)第一項(xiàng),都
8、有相應(yīng)的宏來(lái)處理。1. 對(duì)于對(duì)流項(xiàng),比如關(guān)于phi的方程中的:rho*U*phi的散度,其中U為速度矢量,則fluent中需要知道的對(duì)流項(xiàng)則為rho*U.A,其中UA代表U與A的點(diǎn)積,A代表單元格的面積向量。對(duì)流是對(duì)面而言(2D的話則對(duì)線而言),對(duì)于邊界,只有一邊有單元格,而對(duì)于內(nèi)部surface,則 兩邊都有單元格,這時(shí)單元格編號(hào)從 0 到1。比如,對(duì)于內(nèi)部邊界,代碼可以與下面類似:real NV_VEC(psi),NV_VEC(A ),flux1;/ 聲明向量操作c0=F_C0(f,t);t0=F_C0_THREAD(f,t);F_AREA(A,f,t);/A 的獲得c1=F_C1(f,t
9、);t1=F_C1_THREAD(f,t);NV_D(psi,= ,C_UDMl(c0,t0,UPX),C_UDMl(c0,t0,UPY),C_UDMl(c0,t0,UPZ);NV_D(psi,+= ,C_UDMl(c1,t1,UPX),C_UDM l(c1,t1,UPY),C_UDMl(c1,t1,UPZ);flux1=NV_DOT(psi,A )/2.0;對(duì)于邊界上,則可以只用單元格c0,t0處的值或用f,t處的值(代表直接在邊界面上取值,前提是邊界上有存儲(chǔ)值)。2. 對(duì)于擴(kuò)散項(xiàng),一般比較簡(jiǎn)單,直接用宏 DEFINE_DIFFUSIVIT Y 定義擴(kuò)散系數(shù)即可。注意它在 fluent 軟件
10、中的加入方式,一般是在 material 菜單中。 species 中加入的擴(kuò)散項(xiàng)與 UDS 擴(kuò)散項(xiàng)的加入不在同一處。3. 對(duì)于源項(xiàng),如果不容易線性化,不如索性定義 dSeqn=0 ,這樣倒簡(jiǎn)單。其它一開(kāi)始學(xué)fluent時(shí),把松弛因子設(shè)為0.1就感覺(jué)挺小了。沒(méi)想到剛用UDF計(jì)算時(shí),得從1e-5開(kāi)始,慢慢調(diào)到1e-1數(shù)量級(jí)上。想想挺可怕的。另 外,很多 CFD 或多相流的東西都是理論與經(jīng)驗(yàn)數(shù)據(jù)結(jié)合構(gòu)成的公式,不一定完全準(zhǔn)確,再加上數(shù)值解法的多樣性,使算題時(shí)容易出各種各樣的問(wèn) 題。而且 UDF 有個(gè)特點(diǎn),不能單獨(dú)運(yùn)行的, 調(diào)試也必須放到 fluent 中,這樣當(dāng)要加入的宏比較多時(shí), 就會(huì)變得很麻煩
11、, 常常一天要建十幾個(gè) library , 然后分別選擇不同的宏加載到 fluent ,然后就是不停的調(diào)試。記得剛開(kāi)始,我跟我?guī)熃阋粔K,她主要負(fù)責(zé)物理理論,我主要負(fù)責(zé)編程,經(jīng)常因?yàn)橐?個(gè)小問(wèn)題,要調(diào)試上大半天,因?yàn)榫幊讨?,任何一個(gè)小問(wèn)題也必須解決掉。當(dāng)然,也經(jīng)常煩得很,還好,男女搭配干活不太累。1. 我覺(jué)得visual assistX這個(gè)軟件相當(dāng)不錯(cuò),它是為了方便vc環(huán)境下的編程。而用udf編程時(shí),大家感覺(jué)不爽的是,沒(méi)有提示能力,因?yàn)樗暮闢C環(huán)境下是不認(rèn)識(shí)的,所以一片黑顏色不好看,主要的是不利于查錯(cuò)與寫代碼。而用v isual assistX (網(wǎng)上有破解版的),將fluent udf常用的
12、幾個(gè)頭方便的目錄加入 visual assistX 中后,就方便多了。比如,輸入C_時(shí),可能就會(huì)提示C_UDMI,C_UDSI,C_U,C_R等,因?yàn)橐訡開(kāi)頭的宏太多了,所以只提示最近用過(guò)的幾個(gè)。 又比如,各種枚舉量,各種宏等,這時(shí)都會(huì)以不同的顏色表示,一般常見(jiàn)的拼寫錯(cuò)誤,一下子就能看出來(lái),因?yàn)轭伾煌?方便多了。 visual assistX 本身也帶有 spell check 功能,不過(guò)最好關(guān)掉,因?yàn)槲覀兌x變量時(shí)常常不是以完整的單詞命名,而這時(shí)常常很多代碼下面都有淺淺的紅色的波浪 線,很是不爽。又如, visual assistX 提供查詢功能,比如,某個(gè)宏或某個(gè)系統(tǒng)自帶的變量名等,會(huì)自動(dòng)顯示該名稱的出處,點(diǎn)一下 go 即可查得源文件。這樣可以 很方便地查詢自己不認(rèn)識(shí)的宏或變量等。2. 一開(kāi)始編程時(shí)常犯一個(gè)錯(cuò)誤,就是這樣寫:powl(C_U(c,t),1/3),實(shí)際應(yīng)該寫為powl(C_U(c,t),1.0/3),因?yàn)?/3默認(rèn)是int型的,所以 值為 0,顯然不是我想要的。3. 一開(kāi)始用 fluent6.1 編程,它對(duì)于某個(gè) UDF 面板處一般只允許一個(gè)宏的存在, 所以,當(dāng)你改了一下代碼,重新 build 一個(gè) library 后,宏 會(huì)默認(rèn)地替換掉原
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 信息論與編碼第八章1
- 校園數(shù)據(jù)中臺(tái)技術(shù)方案
- 人教部編版四年級(jí)語(yǔ)文上冊(cè)第22課《為中華之崛起而讀書》精美課件
- 2024年寧夏客運(yùn)資格證考試考什么
- 算法設(shè)計(jì)與分析 課件 5.6.1-動(dòng)態(tài)規(guī)劃應(yīng)用-最長(zhǎng)公共子序列-問(wèn)題描述和分析
- 2024年新疆客運(yùn)資格證需要什么條件
- 2024年武漢申請(qǐng)客運(yùn)從業(yè)資格證2024年試題
- 2024年贛州客運(yùn)從業(yè)資格證培訓(xùn)資料
- 2024年寧夏客運(yùn)資格證考幾科
- 2024-2025學(xué)年山東省濰坊市寒亭區(qū)統(tǒng)編版六年級(jí)上冊(cè)第一次月考語(yǔ)文試卷(含答案解析)
- 河南省周口市川匯區(qū)2024-2025學(xué)年八年級(jí)上學(xué)期期中質(zhì)量監(jiān)測(cè)地理試卷
- 中國(guó)航空學(xué)會(huì)-2024低空經(jīng)濟(jì)場(chǎng)景白皮書
- 學(xué)生會(huì)干部培訓(xùn)課件
- 期中試卷(試題)-2024-2025學(xué)年六年級(jí)上冊(cè)數(shù)學(xué)蘇教版
- 2024年新人教版一年級(jí)數(shù)學(xué)上冊(cè)第4單元《第1課時(shí) 10的再認(rèn)識(shí)》課件
- 二十屆三中全會(huì)精神測(cè)試題(含答案共600道題)(可編輯)
- fob與cifcfr 的區(qū)別及信用證
- 已解密_彩盒性能技術(shù)規(guī)范
- 我的引路人中考滿分作文600字5篇
- 抗美援越烈士們永垂不朽
- 設(shè)備能力指數(shù)(CMK)計(jì)算表
評(píng)論
0/150
提交評(píng)論