版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1
名詞解釋學(xué)習(xí)FLUENTUDF編程,必須要從網(wǎng)格拓?fù)浜蛿?shù)據(jù)結(jié)構(gòu)(幾何數(shù)據(jù)、求解數(shù)據(jù)存儲(chǔ)的空間)兩方面來(lái)理解一些重要概念。節(jié)點(diǎn)node;面face;單元cell。線thread:=1\*GB2⑴線是一塊存儲(chǔ)空間,有節(jié)點(diǎn)線、面線和單元線三類(lèi),存儲(chǔ)了存在某種聯(lián)系的節(jié)點(diǎn)組、面組或單元組的信息。=2\*GB2⑵定義線的指針Thread*t;=3\*GB2⑶線對(duì)應(yīng)的是網(wǎng)格拓?fù)淅锩娴膠one,例如某邊界就是一個(gè)zone,顯然它對(duì)應(yīng)的存儲(chǔ)空間是面線。=4\*GB2⑷在多相模型中,還要區(qū)分超級(jí)線superthread和子線subthread。域domain:=1\*GB2⑴域是比線更大的存儲(chǔ)空間,包含了存在某種聯(lián)系的所有線。=2\*GB2⑵定義域的指針Domain*d;=3\*GB2⑶域?qū)?yīng)的是網(wǎng)格拓?fù)淅锩娴膁omain,由網(wǎng)格定義的所有節(jié)點(diǎn)、面和單元線索的組合。=4\*GB2⑷在多相模型中,還要區(qū)分超級(jí)線superdomain和子線subdomain。總的邏輯關(guān)系是,域->線->節(jié)點(diǎn)/面/單元,這可以從常用的循環(huán)中看出:Domain
*domain;Thread
*c_thread;cell_t
c;/*cell_t是線索(thread)內(nèi)單元標(biāo)識(shí)符的*/thread_loop_c(c_thread,
domain)
/*對(duì)域內(nèi)所有單元線做loop*/{begin_c_loop(c,
c_thread)/*
對(duì)線內(nèi)所有單元做循環(huán)*/{……}end_c_loop(c,
c_thread)
}2
Multiphase-specificDataTypes多相專用數(shù)據(jù)類(lèi)型除了在\o"1.7.
DataTypesinANSYSFLUENT"DataTypesinANSYSFLUENT中呈獻(xiàn)的ANSYSFLUENT專用的數(shù)據(jù)類(lèi)型,還有一些專用于多相UDF的線(thread)和域(domain)數(shù)據(jù)結(jié)構(gòu)。當(dāng)使用多相模型時(shí)(Mixture,VOF,orEulerian),這些數(shù)據(jù)結(jié)構(gòu)用來(lái)存儲(chǔ)混合相(mixtureofallofthephases)和每個(gè)單獨(dú)相的屬性和變量。在多相應(yīng)用中,最高級(jí)別的域是超級(jí)域(superdomain)。每一相占據(jù)一個(gè)子域(subdomain)。第三種域是交互域(interactiondomain),被用于相的相互作用機(jī)制的定義。如果需要混合態(tài)屬性或變量(各相的總和),應(yīng)該用超級(jí)域;而如果需要每單相(individualphase)的這些信息,則應(yīng)該使用子域。在單相模型情況(只有一相),混合相(mixture)的概念用來(lái)代表各組分(species,components)的總和;多相模型的情況,它代表各相的總和。這個(gè)區(qū)別非常重要,因?yàn)镕LUENT有能力處理多相多組分分析。這時(shí)一個(gè)相可能是多個(gè)組分的混合。因?yàn)榍蠼庑畔⒋鎯?chǔ)在線thread數(shù)據(jù)結(jié)構(gòu)中,線必須與超級(jí)域或子域聯(lián)系起來(lái)。也就是說(shuō),對(duì)于每一個(gè)在超級(jí)域中定義的單元線或面線,在各子域里面都有對(duì)應(yīng)有單元線或面線。有些超級(jí)域的線包含的信息與相應(yīng)的子域里的線共享。超級(jí)域內(nèi)的線稱為超級(jí)線,mixture-levelthread,而與子域聯(lián)系的線稱為子線,phase-levelthread.\o"Figure
1.5
DomainandThreadStructureHierarchy"Figure1.5總結(jié)了域和線的體系結(jié)構(gòu)。\o"Figure
1.5
DomainandThreadStructureHierarchy"Figure1.5引入了domain_id和phase_domain_index的概念。domain_id用于將超級(jí)域與子域區(qū)分開(kāi),超級(jí)域(mixturedomain)的domain_id總是1,第一相對(duì)應(yīng)的子域domain_id是2,以此類(lèi)推,同時(shí)交互域也有domain_id??梢允褂煤瘮?shù)Domain*d=Get_Domain(domain_id)來(lái)得到域的指針d。在Phases設(shè)置面上,ID顯示的就是domain_id。phase_domain_index用來(lái)區(qū)分不同單相的線。第一相的phase_domain_index是0,第二相的phase_domain_index是1。不同多相模型的數(shù)據(jù)結(jié)構(gòu)也有不同。比如,在Mixture模型中,只求解混合相的動(dòng)量方程,而在Eulerian模型中,對(duì)每一相都要求解動(dòng)量方程。如果對(duì)它們指定源項(xiàng),數(shù)據(jù)結(jié)構(gòu)式不同的。勾在(hookedto)混合態(tài)的UDF函數(shù),求解器為其傳遞超級(jí)域結(jié)構(gòu);而勾在某一相的函數(shù)則獲得子域結(jié)構(gòu)輸入。DEFINE_ADJUST和DEFINE_INITUDFs是固定超級(jí)域上的。其他類(lèi)型的函數(shù)可以勾在不同的相域。3
AdvancedMultiphaseMacros高級(jí)多相宏對(duì)于大多數(shù)多相模型的標(biāo)準(zhǔn)UDF,函數(shù)需要的變量(域指針,線指針等)都會(huì)由求解器在求解時(shí)直接通過(guò)參數(shù)的方式傳遞給函數(shù)。你所要完成的就是將這些函數(shù)勾到你的模型。但是,可能有些復(fù)雜函數(shù)需要一些沒(méi)有通過(guò)參數(shù)直接傳遞的變量。比如,DEFINE_ADJUST,DEFINE_INIT函數(shù)只獲得了超級(jí)域的變量。如果UDF需要相域(subdomain)的指針,則需要使用本節(jié)所述的宏來(lái)獲取。ON_DEMANDUDF沒(méi)有獲得任何參數(shù)傳遞,因此ondemand函數(shù)也常常要用到這些宏。當(dāng)你在編寫(xiě)多相模型的UDF時(shí),必須要牢記多相模型的數(shù)據(jù)結(jié)構(gòu)體系。要注意函數(shù)獲得的參數(shù),函數(shù)勾在什么域上(GUI或者固定的)。同樣還有注意你使用的多相模型的類(lèi)型。3.1PhaseDomainPointer(DOMAIN_SUB_DOMAIN)相域(子域)的指針已有超級(jí)域指針的情況下,有兩種方式獲取子域的指針:DOMAIN_SUB_DOMAIN宏或Get_Domain。int
phase_domain_index
=
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)來(lái)獲取。3.2
Phase-LevelThreadPointer(THREAD_SUB_THREAD)相級(jí)線的指針已知超級(jí)線的指針,則可以使用THREAD_SUB_THREAD宏求的其子線的指針。intphase_domain_index=0;/*
第一相的phase_domain_index是
0
*/Thread*mixture_thread;/*
超級(jí)線的指針
*/Thread*subthread=THREAD_SUB_THREAD(mixture_thread,phase_domain_index);在上面的例子中,要事先獲得超級(jí)線的指針。同樣,超級(jí)線的指針可能通過(guò)函數(shù)形參獲取,或者使用Lookup_Thread獲取。int
zone_ID
=
2;/*通過(guò)ZONEID來(lái)求的線*/Thread
*thread_name
=
Lookup_Thread(domain,zone_ID);3.2
PhaseThreadPointerArray(THREAD_SUB_THREADS)子線的指針數(shù)組已知超級(jí)線的指針,可以使用THREAD_SUB_THREADS宏求得其所有子線的指針組成的數(shù)組。Thread
*mixture_thread;Thread
**pt;
/*
initialize
pt
*/pt
=
THREAD_SUB_THREADS(mixture_thread);
pt[i],數(shù)組的一個(gè)單元,是phase_domain_index為i的單相對(duì)應(yīng)的子線的指針。例如,C_R(c,pt[i])可用于返回第i相在單元c的密度。3.4
MixtureDomainPointer(DOMAIN_SUPER_DOMAIN)超級(jí)域的指針如果已知某子域的指針,可以用DOMAIN_SUPER_DOMAIN宏求的它的超級(jí)域(可以成為父域)的指針。Domain
*subdomain;Domain
*mixture_domain
=
DOMAIN_SUPER_DOMAIN(subdomain);
在上面的例子中,要事先獲得子域(即相域)的指針。如果UDF勾在某一相域上,相域的指針也可以由求解器自動(dòng)傳遞給UDF。在當(dāng)前版本FLUENT中,DOMAIN_SUPER_DOMAIN與Get_Domain(1)返回的指針是一樣的。但是還是建議在UDF中,盡可能使用DOMAIN_SUPER_DOMAIN,考慮到FLUENT版本的更新,未來(lái)可能處理多個(gè)超級(jí)域。3.5
MixtureThreadPointer(THREAD_SUPER_THREAD)超級(jí)線的指針如果已知子線的指針,可以用THREAD_SUPER_THREAD宏求超級(jí)線的指針。Thread
*subthread;Thread
*mixture_thread
=
THREAD_SUPER_THREAD(subthread);
3.6DomainID(DOMAIN_ID)如果已知某一子域的指針,可以用DOMAIN_ID宏獲取該子域的domain_id。Domain
*subdomain;int
domain_id
=
DOMAIN_ID(subdomain);
3.7
PhaseDomainIndex(PHASE_DOMAIN_INDEX)如果已知某一子域的指針,可以用PHASE_DOMAIN_INDEX宏獲取該子域的phase_domain_index。Domain
*subdomain;int
phase_domain_index
=
PHASE_DOMAIN_INDEX(subdomain);
4.
MultiphaseLoopingMacros多相循環(huán)宏本節(jié)討論只在多相UDF中應(yīng)用的循環(huán)。4.1
LoopingOverPhaseDomainsinMixture(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是子域的指針;mixture_domain是超級(jí)域的指針。例子:下面UDF分塊初始化某一相的體積分?jǐn)?shù),只在求解開(kāi)始執(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_thread;Domain
*subdomain;real
xc[ND_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
(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(xc[0]
-
0.5,2.),pow(xc[1]
-
0.5,2.),pow(xc[2]
-
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_th
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度房地產(chǎn)企業(yè)財(cái)務(wù)報(bào)表編制與披露咨詢合同3篇
- 2024數(shù)控機(jī)床買(mǎi)賣(mài)附帶產(chǎn)品生命周期管理服務(wù)合同3篇
- 《xx網(wǎng)絡(luò)提案》課件
- 廣東省2024-2025學(xué)年高一上學(xué)期期末考試英語(yǔ)試卷(含解析)
- 2024影視制作合同拍攝計(jì)劃與投資預(yù)算
- 2024幼兒園教育集團(tuán)股權(quán)轉(zhuǎn)讓及教育資源整合服務(wù)合同3篇
- 脊柱理療知識(shí)培訓(xùn)課件
- 2024年標(biāo)準(zhǔn)工程造價(jià)協(xié)議范本版B版
- 鋰電池基本知識(shí)培訓(xùn)課件
- 鄭州軌道工程職業(yè)學(xué)院《教育學(xué)基礎(chǔ)B》2023-2024學(xué)年第一學(xué)期期末試卷
- 汽車(chē)租賃流程圖
- 兒童糖尿病的飲食
- “以案促改”心得體會(huì)
- 干細(xì)胞項(xiàng)目商業(yè)計(jì)劃書(shū)
- 安全事故現(xiàn)場(chǎng)處置方案(3篇)
- 中國(guó)通 用技術(shù)集團(tuán)招聘筆試題庫(kù)
- 回收二手機(jī)免責(zé)協(xié)議書(shū)模板
- DL∕T 5362-2018 水工瀝青混凝土試驗(yàn)規(guī)程
- 可下載打印的公司章程
- 國(guó)家開(kāi)放大學(xué)電大本科《機(jī)電控制工程基礎(chǔ)》2023-2024期末試題及答案(試卷代號(hào):1116)
- 水泥土攪拌樁施工記錄表(4攪4噴)
評(píng)論
0/150
提交評(píng)論