在LES中計算Dynamic Smagorinsky Model Coefficient時對方程右側取的是什麼平均?

在大渦模擬(LES)中Germano Dynamic Model的相關wiki頁面中, 我注意它在計算Smagorinsky Coefficient (Cs)時對方程右側的取了一個平均以提高數值穩定性,這個平均是何種意義上的呢(時間,空間 or 系綜)?


終於有一個問題有信心回答了。。。

先從germano最早提出關於動態計算Cs的方法說起,Germano (germano et al, phys. fluids, 1991)提出了Cs^2 = L_ij/M_ij的計算方法,之後Lily (lilly, phys. fluids, 1992)提出了取least square的Cs^2 = (L_ij M_ij)/(M_ij M_ij)來減小誤差,但是這個人家本來是ij那麼多項你用一個Cs去表示本來就有誤差,再加上spectrum瞬時本來就不光滑。這個Cs^2對時間和空間的變化非常大,有時候Cs^2的值會小於0。極端情況下,Cs過大也會導致拉普拉斯項的CFL穩定性問題。

如上圖所示,ii=11也就是uu的spectrum大概長這樣(當然這是一個粗網格不適合用dynamic smagorinsky)。直觀點來說就是filter width和spectrum交點以及grid width和spectrum交點的連線斜率不穩定的問題(雖然不是特別準確但是可以那麼去理解)。圖上的filter指的是test filter,grid filter指的就是LES的filter。在別處要用這張圖的話請事先徵得我的同意。

肯定會採用的方法就是對Cs^2取max(Cs^2,0)來避免出現負的eddy viscosity以維持數值計算的穩定性。需要注意的是Clip的值對最終時均Cs的值有一定影響。

單就這樣也不是不行,但是大家總希望能看到一個穩定點的Cs分布,於是呢,基於統計的角度,相當一部分人就對homogeneous direction進行對Cs的取平均。也就是說如果是homogeneous isotropic turbulence,對整個流場求Cs平均就行了。如果是fully developed channel flow這種有兩個方向是homogeneous的那就對streamwise和spanwise求均。我一般是對L_ij M_ij和M_ij M_ij 分別求平均。。而不是直接對Cs求平均

如果你不想用空間平均,那麼時間平均也是可以的,也就是說你一邊算Cs一邊對時間求平均。這裡有個問題就是在流場變成statistic stationary之前你求平均了那就會影響到後面。

後來meneveau(meneveau et al, JFM, 1996)提出來一個在跡線上對Cs求平均的方法,也就是lagrangian dynamic smagorinsky,不得不說也非常好用,只需要偶爾clip到0就好。只是這裡面又多了一個lagrangian time scale,裡面有個常數需要給定,這就相當於新介入一個常數去穩定Cs,這個常數還是隨著流場形態會變化的。(這不就又是一個Cs嗎!只不過不會不穩定罷了)。後來又有人提出了dynamic lagrangian dynamic smagorinsky就是動態計算那個時間常數。這個就更麻煩了,給跪了。。(我最近就在看有沒有其他可以用的time scale)

還有一部分懶人,既不想什麼平均都不做,又不想做homogeneous direction或者時間上的平均,乾脆就直接對附近的幾個網格點求平均。這個好處是比完全不求平均稍稍穩定點,但是又可以用在複雜幾何外型上,缺點就是還是很不穩定。

反正不管什麼平均方法,就是想讓Cs穩定點。反正LES只要統計上有正確的dissipation就行了,瞬時的怎麼搞問題不太大。本人姿勢有限,歡迎指正。

送個福利,如果有用OpenFOAM的童鞋需要用runtime spawns average的留個言和聯繫方式我可以給你。


無所謂,隨便什麼平均,只是讓係數穩定一點。

參考可見@Kaiser的答案。

ps: 引private conversation不是擺闊,如果這個想法是別人告訴我的,他的貢獻不足以做co-author,類似想法沒有發表過,這樣引是符合學術規範的做法。


推薦閱讀:

研究湍流需要掌握哪些數學知識?
什麼是逆壓梯度?
n-s方程可以描述湍流嗎?

TAG:流體力學 | 計算流體力學CFD | 湍流 |