![FLUENT多相模型的數(shù)據(jù)結(jié)構(gòu)及循環(huán)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-12/2/625685ca-f1ff-4fa4-878c-0646e24d3c08/625685ca-f1ff-4fa4-878c-0646e24d3c081.gif)
![FLUENT多相模型的數(shù)據(jù)結(jié)構(gòu)及循環(huán)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-12/2/625685ca-f1ff-4fa4-878c-0646e24d3c08/625685ca-f1ff-4fa4-878c-0646e24d3c082.gif)
![FLUENT多相模型的數(shù)據(jù)結(jié)構(gòu)及循環(huán)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-12/2/625685ca-f1ff-4fa4-878c-0646e24d3c08/625685ca-f1ff-4fa4-878c-0646e24d3c083.gif)
![FLUENT多相模型的數(shù)據(jù)結(jié)構(gòu)及循環(huán)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-12/2/625685ca-f1ff-4fa4-878c-0646e24d3c08/625685ca-f1ff-4fa4-878c-0646e24d3c084.gif)
![FLUENT多相模型的數(shù)據(jù)結(jié)構(gòu)及循環(huán)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-12/2/625685ca-f1ff-4fa4-878c-0646e24d3c08/625685ca-f1ff-4fa4-878c-0646e24d3c085.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2 Multiphase-specific Data Types多相專用數(shù)據(jù)類型1名詞解釋學(xué)習(xí)FLUENT UD編程,必須要從網(wǎng)格拓?fù)浜蛿?shù)據(jù)結(jié)構(gòu)(幾何數(shù)據(jù)、求解數(shù)據(jù)存儲(chǔ)的空間)兩方面來理 解一些重要概念。節(jié)點(diǎn) node ;面face ;單元cell。simple 2D grid線 thread :線是一塊存儲(chǔ)空間,有節(jié)點(diǎn)線、面線和單元線三類,存儲(chǔ)了存在某種聯(lián)系的節(jié)點(diǎn)組、面組或單元組 的信息。定義線的指針 Thread *t;線對(duì)應(yīng)的是網(wǎng)格拓?fù)淅锩娴膠one,例如某邊界就是一個(gè) zone,顯然它對(duì)應(yīng)的存儲(chǔ)空間是面線。在多相模型中,還要區(qū)分超級(jí)線superthread 和子線subthread 。
2、域 domain :域是比線更大的存儲(chǔ)空間,包含了存在某種聯(lián)系的所有線。定義域的指針 Doma in *d;域?qū)?yīng)的是網(wǎng)格拓?fù)淅锩娴膁omai n,由網(wǎng)格定義的所有節(jié)點(diǎn)、面和單元線索的組合。在多相模型中,還要區(qū)分超級(jí)線superdomain和子線subdomain。總的邏輯關(guān)系是,域-> 線-> 節(jié)點(diǎn)/面/單元,這可以從常用的循環(huán)中看出:Domai n *doma in;Thread *c_thread;cell_t c; /* cell_t是線索(thread )內(nèi)單元標(biāo)識(shí)符的*/threadoop_c(c_thread, domai n)/*對(duì)域內(nèi)所有單元線做 loop*/be
3、gin_c_loop(c, c_thread) /*對(duì)線內(nèi)所有單元做循環(huán)*/en d_c_loop(c, c_thread)除了在 Data Types in ANSYS FLUENT 中呈獻(xiàn)的 ANSYS FLUEN專用的數(shù)據(jù)類型,還有一些專用于多相 UDF的線(thread )和域(domain)數(shù)據(jù)結(jié)構(gòu)。當(dāng)使用多相模型時(shí)(Mixture, VOF, or Eulerian),這些數(shù)據(jù)結(jié)構(gòu)用來存儲(chǔ)混合相( mixture of all of the phases)和每個(gè)單獨(dú)相的屬性和變量。在多相應(yīng)用中,最高級(jí)別的域是超級(jí)域(superdomain)。每一相占據(jù)一個(gè)子域(subdomain)
4、。第三種域是交互域(in teractiondoma in),被用于相的相互作用機(jī)制的定義。如果需要混合態(tài)屬性或變量(各相的總和),應(yīng)該用超級(jí)域;而如果需要每單相(in dividual phase)的這些信息,則應(yīng)該使用子域。在單相模型情況(只有一相),混合相(mixture )的概念用來代表各組分(species ,components)的 總和;多相模型的情況,它代表各相的總和。這個(gè)區(qū)別非常重要,因?yàn)镕LUENT有能力處理多相多組分分析。 這時(shí)一個(gè)相可能是多個(gè)組分的混合。因?yàn)榍蠼庑畔⒋鎯?chǔ)在線thread數(shù)據(jù)結(jié)構(gòu)中,線必須與超級(jí)域或子域聯(lián)系起來。也就是說,對(duì)于每一個(gè)在超級(jí)域中定義的單元線或
5、面線,在各子域里面都有對(duì)應(yīng)有單元線或面線。有些超級(jí)域的線包含的信息與相應(yīng)的子域里的線共享。超級(jí)域內(nèi)的線稱為超級(jí)線,mixture-level thread,而與子域聯(lián)系的線稱為子線,rHistHjrF-Icvel thread (e-Ql. flkj-d zoitiekmiMliure drrKHn. dcmwlrl_ldiB 1pnniiir)!闊閒希.対 2wcMGiary phaw cig ruin, donninid 3wizandar)i piiaw domain donuin_id = 4liriLuAiCUail demalr d«rhftin_hdl 5_ L ZI
6、igurt 1.5 LXomM and Thread amjchre»lief arc liyrniMtwreBicI thie«d (i.y.r inM ecmtw'*Ddei:Eizumv r-Ini I-| *j | anwM> | ® Fphase-level thread. Figure 1.5 總結(jié)了域和線的體系結(jié)構(gòu)。r.srvyi MWiwSoil ion OmbdiMaFigure 1.5引入了 domain_id和phase_domain_index的概念。domaind用于將超級(jí)域與子域區(qū)分開, 超級(jí)域(mixture domai
7、n)的domain_id總是1,第一相對(duì)應(yīng)的子域domain_id是2,以此類推,同時(shí)交互域也有domain_id ??梢允褂煤瘮?shù) Domain *d=Get_Domain( domain_id )來得到域的指針 d。在Phases設(shè)置 面上,ID顯示的就是domaind。phase_domain_index 用來區(qū)分不同單相的線。第一相的 phase_domain_index 是0,第二相的 phase_domain_index 是 1。不同多相模型的數(shù)據(jù)結(jié)構(gòu)也有不同。比如,在Mixture模型中,只求解混合相的動(dòng)量方程, 而在Eulerian模型中,對(duì)每一相都要求解動(dòng)量方程。如果對(duì)它們指定
8、源項(xiàng),數(shù)據(jù)結(jié)構(gòu)式不同的。勾在(hooked to)混合態(tài)的UDF函數(shù),求解器為其傳遞超級(jí)域結(jié)構(gòu);而勾在某一相的函數(shù)則獲得子域結(jié)構(gòu)輸入。DEFINE_ADJUST和DEFINE_INITUDFs是固定超級(jí)域上的。其他類型的函數(shù)可以勾在不同的相域。3 Adva need Multiphase Macros高級(jí)多相宏對(duì)于大多數(shù)多相模型的標(biāo)準(zhǔn)UDF函數(shù)需要的變量(域指針,線指針等)都會(huì)由求解器在求解時(shí)直接通過參數(shù)的方式傳遞給函數(shù)。你所要完成的就是將這些函數(shù)勾到你的模型。但是,可能有些復(fù)雜函數(shù)需要一些沒有通過參數(shù)直接傳遞的變量。比如,DEFINE_ADJUST,DEFINE_INIT函數(shù)只獲得了超級(jí)域的
9、變量。如果UDF需要相域(subdomain )的指針,則需要使用本節(jié)所述的宏來獲取。ON_DEMAND U沒有獲得任何參數(shù)傳遞,因此 on dema nd函數(shù)也常常要用到這些宏。當(dāng)你在編寫多相模型的 UDF 時(shí),必須要牢記多相模型的數(shù)據(jù)結(jié)構(gòu)體系。要注意函數(shù)獲得的參數(shù),函數(shù) 勾在什么域上(GUI或者固定的)。同樣還有注意你使用的多相模型的類型。3.1 Phase Domain Pointer (DOMAIN_SUB_DOMAIN) 相域(子域)的指針已有超級(jí)域指針的情況下,有兩種方式獲取子域的指針:DOMAIN_SUB_DOMAN或Get_Domain。int phase_domain_ind
10、ex = 0; /*第一相的 phase_domain_index 是 0 */Domain *mixture_domain; /*超級(jí)域的指針 */Domain *subdomain = DOMAIN_SUB_DOMAIN(mixture_domain,phase_domain_index);在上面的例子中,要事先獲得超級(jí)域的指針。如前文所述,某些函數(shù)勾在超級(jí)域上,求解器就會(huì)自動(dòng)傳遞超級(jí)域指針到 UDF而某些函數(shù)則不能顯式地得到超級(jí)域的指針,則需要用宏Get_Domain(1)來獲取。3.2 Phase-Level Thread Pointer (THREAD_SUB_THREAD) 相級(jí)線
11、的指針已知超級(jí)線的指針,則可以使用THREAD_SUB_THREAD求的其子線的指針。int phase_domain_index = 0;/*第一相的 phase_domain_index 是 0 */Thread *mixture_thread; /*超級(jí)線的指針 */Thread *subthread = THREAD_SUB_THREAD(mixture_thread,phase_domain_index);在上面的例子中,要事先獲得超級(jí)線的指針。同樣,超級(jí)線的指針可能通過函數(shù)形參獲取,或者使用 Lookup_Thread 獲取。int zone_ID = 2; /* 通過 ZONE
12、ID來求的線 */Thread *thread_name = Lookup_Thread(domain,zone_ID);3.2 Phase Thread Pointer Array (THREAD_SUB_THREADS) 子線的指針數(shù)組已知超級(jí)線的指針,可以使用THREAD_SUB_THREADS求得其所有子線的指針組成的數(shù)組。Thread *mixture_thread;Thread *pt; /* initialize pt */pt = THREAD_SUB_THREADS(mixture_thread);pti, 數(shù)組的一個(gè)單元, 是 phase_domain_index 為 i
13、的單相對(duì)應(yīng)的子線的指針。 例如, C_R(c,pti) 可用于返回第 i 相在單元 c 的密度。3.4 Mixture Domain Pointer (DOMAIN_SUPER_DOMAIN) 超級(jí)域的指針如果已知某子域的指針,可以用DOMAIN_SUPER_DOMA宏求的它的超級(jí)域(可以成為父域)的指針。Domain *subdomain;Domain *mixture_domain = DOMAIN_SUPER_DOMAIN(subdomain);在上面的例子中,要事先獲得子域(即相域)的指針。如果UDF勾在某一相域上,相域的指針也可以由求解器自動(dòng)傳遞給 UDF在當(dāng)前版本 FLUENT中,
14、DOMAIN_SUPER_DOMAN Get_Domain 返回的指針是 一樣的。但是還是建議在 UDF中,盡可能使用 DOMAIN_SUPER_DOMA考慮到FLUENT版本的更新,未來可 能處理多個(gè)超級(jí)域。3.5 Mixture Thread Pointer (THREAD_SUPER_THREAD) 超級(jí)線的指針如果已知子線的指針,可以用THREAD_SUPER_THREA求超級(jí)線的指針。Thread *subthread;Thread *mixture_thread = THREAD_SUPER_THREAD(subthread);3.6 Domain ID (DOMAIN_ID)如果
15、已知某一子域的指針,可以用DOMAIN_ID宏獲取該子域的domain_id。Domain *subdomain;int domain_id = DOMAIN_ID(subdomain);3.7 Phase Domain Index (PHASE_DOMAIN_INDEX)如果已知某一子域的指針,可以用PHASE_DOMAINNDE宏獲取該子域的 phase_domain_index 。Domain *subdomain;int phase_domain_index = PHASE_DOMAIN_INDEX(subdomain);4. Multiphase Looping Macros 多相循
16、環(huán)宏本節(jié)討論只在多相 UDF中應(yīng)用的循環(huán)。4.1 Looping Over Phase Domains in Mixture (sub_domain_loop) 子域循環(huán)該循環(huán)對(duì)所有子域進(jìn)行循環(huán),這是一種獲取各單相域的指針的方法之一。int phase_domain_index; /* index of subdomain pointers */Domain *mixture_domain;Domain *subdomain; sub_domain_loop(subdomain, mixture_domain, phase_domain_index) 參數(shù)中, subdomain 是子域的指針
17、; mixture_domain 是超級(jí)域的指針。例子:下面UDF分塊初始化某一相的體積分?jǐn)?shù),只在求解開始執(zhí)行一次。 /*UDF for initializing phase volume fraction*/#include "udf.h"/* domain pointer that is passed by INIT function is mixture domain */ DEFINE_INIT(my_init_function, mixture_domain)int phase_domain_index;cell_t cell;Thread *cell_threa
18、d;Domain *subdomain;real xcND_ND;/* loop over all subdomains (phases) in the superdomain (mixture) */ sub_domain_loop(subdomain, mixture_domain, phase_domain_index) /* loop if secondary phase */if (DOMAIN_ID(subdomain) = 3)/* loop over all cell threads in the secondary phase domain */ thread_loop_c
19、(cell_thread,subdomain)/* loop over all cells in secondary phase cell threads */ begin_c_loop_all (cell,cell_thread) C_CENTROID(xc,cell,cell_thread); if (sqrt(ND_SUM(pow(xc0 - 0.5,2.), pow(xc1 - 0.5,2.), pow(xc2 - 0.5,2.) < 0.25)/* set volume fraction to 1 for centroid */C_VOF(cell,cell_thread) = 1.; else/* otherwise initialize to zero */C_VOF(cell,cell_thread) = 0.;end_c_loop_all (cell,cell_thread)4.2 Looping Over Phase Threads
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 八年級(jí)英語下冊(cè) Unit 9 單元綜合測(cè)試卷(人教版 2025年春)
- 2024-2025學(xué)年河南省周口市商水縣化河鄉(xiāng)等小學(xué)四年級(jí)(上)期末數(shù)學(xué)試卷
- 2024年全國職業(yè)學(xué)校技能大賽(養(yǎng)老照護(hù)賽項(xiàng))備考試題庫大全(附答案)
- 2025年個(gè)人果園承包合同簡(jiǎn)單版(三篇)
- 2025年五金家電買賣合同范文(2篇)
- 2025年個(gè)人樓房出租合同標(biāo)準(zhǔn)版本(三篇)
- 2025年中年人自愿離婚協(xié)議范文(2篇)
- 2025年產(chǎn)品加工項(xiàng)目合作協(xié)議(三篇)
- 2025年個(gè)人果園承包合同參考模板(三篇)
- 2025年九年級(jí)下學(xué)期班級(jí)教師工作總結(jié)模版(2篇)
- 2023年西安經(jīng)濟(jì)技術(shù)開發(fā)區(qū)管委會(huì)招聘考試真題
- 靜脈治療護(hù)理技術(shù)操作標(biāo)準(zhǔn)(2023版)解讀 2
- 2024年全國各地中考試題分類匯編(一):現(xiàn)代文閱讀含答案
- GB/T 30306-2024家用和類似用途飲用水處理濾芯
- 武強(qiáng)縣華浩數(shù)控設(shè)備科技有限公司年產(chǎn)9000把(只)提琴、吉他、薩克斯等樂器及80臺(tái)(套)數(shù)控雕刻設(shè)備項(xiàng)目環(huán)評(píng)報(bào)告
- 安全生產(chǎn)法律法規(guī)匯編(2024年4月)
- DB11∕T 882-2023 房屋建筑安全評(píng)估技術(shù)規(guī)程
- (2024年)剪映入門教程課件
- 華為員工股權(quán)激勵(lì)方案
- 衛(wèi)生院安全生產(chǎn)知識(shí)培訓(xùn)課件
- 中國旅游地理(高職)全套教學(xué)課件
評(píng)論
0/150
提交評(píng)論