這里以一個簡單的初始化案例來描述UDF的源代碼編寫、編譯及加載過程。通過此案例可以熟悉UDF的整個使用流程。
Fluent中提供了全域初始化以及局部Patch功能。對于整體區域的全局初始化可以采用starndard及hybrid方法進行初始化,指定各種物理量的初始分布。而對于計算域中的局部區域初始化,則可以通過Patch功能來實現。
在使用Patch方法時,需要實現對要進行Patch的區域進行標記。選擇Mark/Adapt Cells→Region...可彈出區域定義對話框。
可以在彈出的對話框中設置幾何條件來Mark區域。
然而在此對話框中可定義的形狀類型只有三種:Quad、Circle或Cylinder,在3D模型中對應的是Hex、Sphere以及Cylinder。對于更復雜的模型似乎無能為力。此時可以借助UDF來解決問題。
如下圖所示的矩形區域為計算區域,其初始溫度為300K。計算模型尺寸如圖所示。
圖中紅色部分為要進行初始化處理的橢圓區域,其初始溫度為500K。
網格如圖所示。
對于這種橢圓形區域的初始化,只能采用UDF來實現。利用DEFINE_INIT宏來實現這種區域的標記工作。
本案例中橢圓方程為:
因此可編寫UDF如下。
利用User Defined標簽頁下的Function→Compiled…,Fluent軟件會彈出UDF編譯對話框。
在彈出的對話框中利用Add…按鈕添加UDF源文件,點擊Build按鈕進行編譯,并點擊按鈕Load加載UDF。

本案例也可以采用解釋的方式運行。
UDF編譯完成后,需要將UDF加載到Fluent中。這部分工作可以通過相應的GUI來實現。
DEFINE_INIT宏需要在User Defined標簽頁下的Funcition Hooks…中進行加載。
選擇此按鈕后打開UDF加載對話框。
在查看初始化結果之前,需要開啟相應的模型。由于本案例初始化的是溫度變量,所以必須首先開啟能量方程。
之后進行初始化。
初始化完畢后可以查看溫度云圖分布,如下圖所示。

可以看到橢圓形區域初始溫度設置為500K。
按同樣的道理,可以初始化任何形狀的區域,只要這些區域可以用數學函數來表達。
子曰:天底下最悲催的事情是:你花了很多時間寫了一篇自認為是干貨的文章,結果卻沒有人看。