Fluent表達式基礎實例

1. 表達式介紹

UDF的使用雖然很方便,但入門需要一定的門檻,導致很多同學不敢深入學習。Fluent新的版本提供了表達式Expression功能,能夠對UDF進行一定的替代和補充。

Fluent表達式基礎實例的圖1


注:

a. 表達式功能最重要的一點就是量綱要統一,大部分的表達式出現問題,都是量綱問題

b. 很多時候表達式比UDF還要復雜,與其糾結表達式,不如踏實學習UDF

c. 表達式并不是UDF的簡化版本,對于縮減操作,表達式有其獨有的優勢。


2. 表達式案例

本文通過三個案例簡單介紹表達式功能的使用。


2.1 案例1:入口速度隨時間變化

這個案例看似非常簡單,對于UDF來說確實如此,但對于表達式來說可能就比較麻煩。表達式最麻煩的地方就在于量綱要統一。

讓模型的入口速度隨時間變化,這里設置速度是時間的三角函數的絕對值。我們需要注意的就是要讓表達式的量綱統一,這也是大家使用expression經常出錯的地方。

Fluent表達式基礎實例的圖2


1. 打開Fluent,導入想要設置的case,這里在文章末尾給大家提供了我所使用的case。由于使用到了時間t,因此必須是瞬態

Fluent表達式基礎實例的圖3

2. 雙擊Boundary condition,找到需要設置表達式的邊界,設置為velocity inlet。

Fluent表達式基礎實例的圖4

雙擊in邊界,在Velocity Magnitude后的下拉列表后面選擇expression 

Fluent表達式基礎實例的圖5

選擇expression后,可以直接在Enter Expression輸入公式。也可以點擊后面的f(x),彈出expression窗口輸入公式

Fluent表達式基礎實例的圖6

3. Expression窗口


Fluent表達式基礎實例的圖7

簡單介紹一下,后面會有文章詳細介紹:

①輸入公式的文本框

Functions自帶的各種函數,包含條件函數Conditional如if、數學公式Mathematical比如絕對值函數、最大最小值函數等。其中的Reduction函數比較難理解,也比較重要。

Fluent表達式基礎實例的圖8

③Variables Fluent中所能輸出的物理量,包含壓力、溫度、速度等

Fluent表達式基礎實例的圖9

④Constants自帶的常數,比如PI,氣體常數R,自然對數e等

Fluent表達式基礎實例的圖10

Location 模型中的各種區域,包含邊界區域和計算域

Fluent表達式基礎實例的圖11

4. 輸入速度公式

Fluent表達式基礎實例的圖12

公式中的sin可以直接輸入文本sin()表示正弦函數,也可從Functions中選擇sin函數。公式中的π需要輸入PI或者從Constants中選擇PI。


表達式中用t來表示時間,可以直接輸入t,也可在Variables中選擇t。公式中的絕對值用abs函數表示

按照上面的描述,表達式應該為

abs(sin(200*PI*t))


Fluent表達式基礎實例的圖13

但按照上述公式輸入,會發現下面有報錯信息,翻譯一下:sin函數參數應該是無量綱的或者是角度單位,但現在的公式單位是時間單位s。


也就是說量綱不對,所以我們需要修改量綱,使sin的參數無量綱。如何修改??其實不管那么多強制修改就可以,有s的單位,除以1s就沒有單位了

sin(200*PI*t/1[s])

當然還有很多表達方式,只要能保證滿足單位要求即可。

sin(200*PI*t*1[s^-1])

sin(200*PI*1[Hz]*t)

注:

a. 表達式的量綱格式為[Pa kg^-3 s],用中括號括起來,指數用^表示;復合單位,單位和單位直接用空格,用*也可以。

b. 修改公式量綱原則:怎么修改都可以,不需要考慮物理意義,只要滿足量綱要求就行


按照上述公式輸入后,又提示錯誤

Fluent表達式基礎實例的圖14

錯誤信息:公式單位錯誤,需要的公式單位使[m s^-1],但給出的公式單位是[]無量綱。


仍然是量綱問題,雖然我們使sin函數滿足無量綱的要求了,但速度公式要求的是m/s的單位,因此需要將公式單位改為m/s。還是有多種方式,比如

sin(200*PI*t*1[s^-1])*1[m/s]

sin(200*PI*t*1[s^-1])*1[m*s^-1]

1[m*s^-1]*sin(200*PI*t*1[s^-1])


按照上面的公式輸入后,窗口會變成下圖


Fluent表達式基礎實例的圖15

此時不再出現報錯信息,同時會出現Primary Independent Variable框,此框用于繪圖。Min和max表示自變量的范圍,count表示繪圖的節點數。



計算驗證

把上面的公式輸入后,進行計算驗證,檢測入口速度隨時間變化曲線。下面是一個周期的圖像


Fluent表達式基礎實例的圖16


2.2 案例2:壁面溫度隨x軸變化

上面的例子介紹的比較詳細,這個例子當作練習,簡單說明。

假設壁面溫度和x的函數關系為二次函數

Tw=273+30*x+20*x^2


步驟和案例1相同,這里我們只對輸入公式進行說明(涉及到溫度,需要打開能量方程)


Fluent表達式基礎實例的圖17

在wall邊界中,勾選Temperature,點擊expression,進入到輸入公式界面。


公式說明:Tw=273+30*x+20*x^2

a. 公式中的x表示x軸坐標,可以直接輸入x,也可以在Variables中選擇x坐標

Fluent表達式基礎實例的圖18

b. 最重要的還是量綱問題,273無量綱,30*x量綱是[m],20*x^2量綱是[m^2]。需要將公式的量綱調整為K。


c. 調整量綱思路:將公式的每一項都變成無量綱,最后統一變成K

(273+30*x/1[m]+20*x^2/1[m^2])*1[K]


Fluent表達式基礎實例的圖19

導入公式后,初始化。查看wall壁面的溫度分布


Fluent表達式基礎實例的圖20


2.3 案例3:材料密度為壓力和溫度的函數

認為空氣密度是壓力和溫度的函數,根據理想氣體狀態方程可得到

Fluent表達式基礎實例的圖21


其中的R為氣體常數,單位為J/(K·mol);M為空氣的分子量M=29g/mol


公式說明:

a. 公式中的P和T均為Fluent可以提供的物理量,通過Variables選取即可

Fluent表達式基礎實例的圖22

b. R為氣體常數,如果是自己輸入的話,是沒有單位的;但是Fluent的Constants提供的R包含了單位J/(K·kmol)。

Fluent表達式基礎實例的圖23


c. 按照上面物理量的量綱,M=29kg/kmol。最終公式:

AbsolutePressure*29[kg/kmol]/(StaticTemperature*R)


導入公式后可以畫出曲線圖


Fluent表達式基礎實例的圖24

回到材料設置界面,單擊Change按鈕會出現報錯信息


Fluent表達式基礎實例的圖25

信息顯示密度表達式不能同時是溫度和壓力的函數,說明Expression的方式還是有局限性。


Fluent表達式基礎實例的圖26



文章來源:fluent學習筆記



登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

2