burgers" equation驗證數值格式是否是該數值格式能應用於N-S方程的充分/必要條件?

今天在NIA開會,碰到那麼個爭論。最近知乎計算流體力學裡面都是問fluent技巧啥的也挺沒勁的,這個問題拿來給大家討論討論。

Shu(Brown Univ.)的人說驗證burgers" equation之後再去算N-S方程。然後Moin一聽表示用burger"s equation驗證數值方法是否可行並不是應用於N-S方程前的必要條件,也不能完全模擬N-S方程求解時遇到的各種情形。

Roe一聽就覺得不對,他說Burgers" equation可以完全模擬出N-S方程的所有條件。我聽他提到face,cell啥的,好像還挺複雜的但是結論就是Burgers" equation是足夠的。

Moin就一直不同意,然後這時候Z. J. Wang就出來了,他說1-D的要是不滿足的話,那3-D的就更不用說了。用burgers" equation驗證數值格式是應用於N-S前的必要條件。

然後Moin就說,burgers" equation與N-S有很大的差別,N-S方程中有壓強,壓強有時候可以起到「smooth」解的作用。所以如果有的數值格式就算在burgers" equation中有各種問題,但還是可以在N-S方程中運用的。

最後也沒得出一個結果,我是同意Moin的說法的。順便拋磚引玉看看大家怎麼看這個問題。

昨天和Z. J. Wang聊天的時候忘記向他提起 @朱輝 了,今天他的PPT上面team member裡面看到Hui Zhu就想起來了。不過會開完了急著回來就沒有再去打招呼。不得不說你們組做的東西真是厲害。

我對數值格式沒有研究,所以可能沒catch到重點,也許沒講清楚問題,大概就是充分性和必要性的分析。

以上?


簡短答案:同意Shu手下和Roe所說。

想數值解NS(或inviscid情況的Euler),Burgers equation是驗證數值方法絕好的算例。

Burgers equation常見有兩種形式,並且都有解析解。

1. inviscid burgers equation

frac{partial u}{partial t} + frac{1}{2} frac{partial u^2}{partial x} = 0

2. viscous burgers equation

frac{partial u}{partial t} + frac{1}{2} frac{partial u^2}{partial x} = lambda frac{partial^2 u}{partial x^2}

lambda是viscous coefficient,等式右邊為viscous/diffusion term。

我認為Moin所說的壓強項應該是viscous/diffusion term。

第一個Burgers equation很有趣,即使給一個非常smooth的sine函數作為initial condition,最終答案也會變成一個moving shock wave(或稱之為discontinuity)。

在計算網格不變的情況下,遇到discontinuity,數值解精度都會變成O(1)。

當然,能夠解discontinuity的數值方法也不那麼容易理解,Shu和Roe都是做這個的。[1][2]

普通的高階差分格式遇到discontinuity會有Gibbs現象,數值解完全不可用。

所以說,要是數值方法能夠解第一個Burgers equation,inviscid NS(也就是Euler)是沒問題的。

即使是Euler equation,有解析解的情況非常有限,所以只能用實驗來比較數值模擬的結果。

以下的視頻在quality level驗證數值解和實驗是非常接近的(需翻牆)

https://www.youtube.com/watch?v=gnhbhpwTx1c

BTW,該視頻用的數值方法就是Brown那幫人搞的WENO[2]。

第二個Burgers equation比第一個多一項,貌似會更難解。

但實際上,等式右邊的viscous term將問題都簡單化,viscous term的存在能smooth shock wave。即使我們給一個step function作為初始條件,最終的數值解也會變得smooth。

所以很普通的高階差分也能數值解這個方程。

NS包含了viscous/diffusion terms,所以只要普通的高階差分都就能解NS了!

當然,計算數學家們還有超高階,超高精度的譜方法。[3]

[1]Toro, E. F. (1999), Riemann Solvers and Numerical Methods for Fluid Dynamics

[2]Guang-Shan Jiang, Chi-Wang Shu (1995) Efficient implementation of weighted ENO schemes.

[3]Canuto, C., Hussaini, M.Y., Quarteroni, A., Zang, Th.A. (2006) Spectral Methods Fundamentals in Single Domains


從數值計算方面理解,我覺得舒大牛說的是沒錯的

首先看Burgers方程形式

partial_t u + partial_x (frac{1}{2} u^2) = mu partial_{xx} u

在這個方程里,非線性對流項和擴散項都有了。假如數值格式能計算非線性對流項,捕捉間斷產生的激波或者稀疏波,不產生數值振蕩並且數值耗散特別小,那麼用來求解NS方程基本沒什麼問題。

大部分的數值方法書籍也是從:線性對流項=&>&> 非線性對流項=&>&> 擴散項=&>&> NS eqs 這套思路去寫的,Burgers方程通常也在非線性對流這章中作為經典例題出現。


謝 @印子斐 大神邀。

題目描述里都提到了我,算利益相關么?

我個人認為沒有問題。Burger"s equation作為「一維版本」的「偽NS」是完全說得通的。

壓強項的"smooth"作用我不太理解是什麼意思,不過我猜測Moin指的是RANS方程里的壓力應變相關項?

具體的之後再展開。


壓強為什麼可以smooth解?我算程序的時候 如果存在不穩定的情況 基本上都是從壓強開始崩的,一直沒搞明白為什麼。

計算中的數值不穩定波一般稱作spurious waves, 這種波大概都是幾個網格的尺度 是一個local的現象 很難被對流或著耗散掉。根據我的經驗 一般都是首先表現在壓強上 然後慢慢的從速度密度上也能看出一些問題。

burgers eq. 不是很了解。剛才上網查了一下 如果沒理解錯的話 在不可壓的情況下 NS方程貌似可以簡化為burgers 方程。但是前提是不可壓 這也說明了由壓縮性而產生的物理情況(比如聲波)是不能被Burgers方程完全描述的。所以我覺得適應於burgers方程的數值方法並不意味著也可以推廣到NS方程上。但是如果一個數值方法適用於NS方程 那麼是否可以說這種方法也可以求解burgers方程呢?真沒能力給出任何一個肯定或否定的答案。


Moin不是專門研究數值格式的,但他算過的cpu小時數比其他幾位加起來還要多幾個數量級。如果你相信實踐出真知,應該賭Moin勝率比較高。

NS方程的解要被壓力項投影到無散的向量空間中。所以不難想像,經過投影,有些數值誤差會被消滅掉。

這一點在projection method中很明顯。粗略的來講,projection method的第一步是解一個burgers eqn,由此得到的速度不是無散的。第二部要對這個速度場做leray projection,由此得到一個無散的速度。如果第一步的數值誤差和leray projection正交,這些誤差就被完全消去了 。實際上當然沒有這麼好的事情,不過可以說明burger"s equation解不好和NS解不好是兩回事。

另外,kim moin[1985]用的就是projection method,所以Moin的這個洞見是其來有自的。

PS:

還有一種雞同鴨講的可能性,Shu和Roe腦子裡想的是compressible NS,Moin想的是incompressible NS。


談充分性和必要性,需要在數學上分別針對一系列性能標準提出和證明一系列定理。否則不搞嚴格證明就可能出反例,哪怕非常罕見。

這些定理會異常難搞,因為「能用」的標準受工程因素影響。更要命的在於數學上N-S方程本身的解的存在性唯一性光滑性穩定性含有歷史遺留問題,拿什麼作為參照物談逼近?

對CFD來說,作為參照物的所謂「N-S方程的真正的解」,至今是個風洞吹出來的東西。


全是大牛,求會議主頁。


ns方程物理粘性不足,二維激波問題不穩定,也能用burgers方程驗證?有vortex sheet就難了,各種數值熵問題就出來了。


推薦閱讀:

TAG:流體力學 | 計算流體力學CFD | 數值模擬 |