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