這里以一個(gè)簡(jiǎn)單的初始化案例來(lái)描述UDF的源代碼編寫(xiě)、編譯及加載過(guò)程。通過(guò)此案例可以熟悉UDF的整個(gè)使用流程。
Fluent中提供了全域初始化以及局部Patch功能。對(duì)于整體區(qū)域的全局初始化可以采用starndard及hybrid方法進(jìn)行初始化,指定各種物理量的初始分布。而對(duì)于計(jì)算域中的局部區(qū)域初始化,則可以通過(guò)Patch功能來(lái)實(shí)現(xiàn)。
在使用Patch方法時(shí),需要實(shí)現(xiàn)對(duì)要進(jìn)行Patch的區(qū)域進(jìn)行標(biāo)記。選擇Mark/Adapt Cells→Region...可彈出區(qū)域定義對(duì)話(huà)框。
可以在彈出的對(duì)話(huà)框中設(shè)置幾何條件來(lái)Mark區(qū)域。
然而在此對(duì)話(huà)框中可定義的形狀類(lèi)型只有三種:Quad、Circle或Cylinder,在3D模型中對(duì)應(yīng)的是Hex、Sphere以及Cylinder。對(duì)于更復(fù)雜的模型似乎無(wú)能為力。此時(shí)可以借助UDF來(lái)解決問(wèn)題。
如下圖所示的矩形區(qū)域?yàn)橛?jì)算區(qū)域,其初始溫度為300K。計(jì)算模型尺寸如圖所示。
圖中紅色部分為要進(jìn)行初始化處理的橢圓區(qū)域,其初始溫度為500K。
網(wǎng)格如圖所示。
對(duì)于這種橢圓形區(qū)域的初始化,只能采用UDF來(lái)實(shí)現(xiàn)。利用DEFINE_INIT宏來(lái)實(shí)現(xiàn)這種區(qū)域的標(biāo)記工作。
本案例中橢圓方程為:
因此可編寫(xiě)UDF如下。
利用User Defined標(biāo)簽頁(yè)下的Function→Compiled…,Fluent軟件會(huì)彈出UDF編譯對(duì)話(huà)框。
在彈出的對(duì)話(huà)框中利用Add…按鈕添加UDF源文件,點(diǎn)擊Build按鈕進(jìn)行編譯,并點(diǎn)擊按鈕Load加載UDF。
本案例也可以采用解釋的方式運(yùn)行。
UDF編譯完成后,需要將UDF加載到Fluent中。這部分工作可以通過(guò)相應(yīng)的GUI來(lái)實(shí)現(xiàn)。
DEFINE_INIT宏需要在User Defined標(biāo)簽頁(yè)下的Funcition Hooks…中進(jìn)行加載。
選擇此按鈕后打開(kāi)UDF加載對(duì)話(huà)框。
在查看初始化結(jié)果之前,需要開(kāi)啟相應(yīng)的模型。由于本案例初始化的是溫度變量,所以必須首先開(kāi)啟能量方程。
之后進(jìn)行初始化。
初始化完畢后可以查看溫度云圖分布,如下圖所示。
可以看到橢圓形區(qū)域初始溫度設(shè)置為500K。
按同樣的道理,可以初始化任何形狀的區(qū)域,只要這些區(qū)域可以用數(shù)學(xué)函數(shù)來(lái)表達(dá)。
子曰:天底下最悲催的事情是:你花了很多時(shí)間寫(xiě)了一篇自認(rèn)為是干貨的文章,結(jié)果卻沒(méi)有人看。