對應的都有哪些解決方法呢?


1,會導致哪些困難?如何理解?

基於可壓縮NS方程的求解器求解小馬赫數流動( [公式] )時,會帶來兩個問題。

一,由於CFL條件的限制,時間步長越來越小;

二,流場的分辨精度會越來越低

如何理解這兩種現象呢?從物理的角度,流場的特徵速度不唯一,包含聲波(壓力脈動)的傳播速度 [公式] 和流體團的運動速度速度 [公式] 。隨著來流速度的減小,二者比值趨於無窮[公式] 。這時,CFL條件 [公式] 的限制來自於聲速項。為了捕捉聲相關的物理過程,時間步長必須越來越小,計算代價也越來越高。從方程本身看, [公式] 表示方程組的Jacobi矩陣條件數趨於無窮 [公式]

不妨以一維定常可壓縮NS方程為例

[公式]

上式中, [公式] 是偽時間,當迭代收斂時,這一項等於零。 [公式] 就是jacobi矩陣,其特徵速度 [公式] 。隨著來流馬赫數的降低,特徵速度之間的差異會越來越大,矩陣呈現病態ill-conditioned。

另外,隨著 [公式] ,各方程之間的耦合程度越來越差。本來壓力、溫度和密度由狀態方程耦合 [公式]低速時,密度 [公式] 和溫度 [公式] 的耦合程度越來越高。而壓力 [公式] 則相反,與二者逐漸解耦。這就是流場分辨能力下降的原因所在。

2,處理辦法I:預處理

有時,我們需要一致的處理高低速混合流場,比如直升機旋翼附近的流場,高速邊界層等。此時,預處理方法(preconditioning)就是唯一的選擇。仍然以一維定常可壓縮NS方程為例,在偽時間導數項上乘以一個矩陣

[公式]

預處理使得新的Jacobi矩陣 [公式] 具有很小的條件數,理論上可以降至量級 [公式] 。二維、三維流場的情形,具體推導會複雜一些,但基本原理不變。比較經典也是用的比較多的預處理方法來自是Choi and Merkle (j comput phys, 1993),以及Turkel的工作(e.g. j comput phys, 1987; rev numer math, 1993; annu rev fluid mech, 1999)。有趣的是,Choi最早在上世紀60年代末提出此方法是為擬壓縮方法(artificial compressibility method,ACM)準備的,在80年代才進一步拓展應用至可壓縮方程。

如果是非定常的情況呢?那就用Jameson的雙時間步方法吧,加上LU-SGS隱式處理,效率優秀。

小結,預處理方法的缺點包括

a,計算代價仍然比較高。需要在可壓縮方程的基礎上添加額外計算量。

b,預處理矩陣的普適性差。適用於一種流動的預處理方法,在用於其它流動時,效用可能會差很多。如果是基於當地而非全場的預處理,需要更大的計算開銷。

c,error cancellation問題。這個問題一般在能量方程中比較顯著,與壓力有關,可以參考一篇短文(SH Lee, j comput phys, 2007)。

優點包括

a,無論是高速流場和低速流場,都可以使用同一套求解器處理。速度較大時,可以關掉預處理模塊的開關。因此,預處理方法在工程領域非常受歡迎,比如開源代碼cfl3d就預置了預處理模塊。

b,可以一致的處理高低速混合流場。

c,對於必須同時考慮低速和可壓縮效應及其相互作用的問題,比如聲波火焰相互作用,太陽等恆星上的流場模擬,預處理方法或許是唯一的適用的方法。

3,處理辦法II:low-Mach-number NS(lMnNS)方程

如果不關心流場中的聲相關過程,流場又是速度比較低,如低速燃燒的數值模擬,就可以從簡化的方程模型lMnNS方程開始。簡單的量級分析表明,在低速領域,聲波相關的運動過程的能量相對較低,可以忽略。這個可以方程的推導可以參考Paolucci 等人(1982;jfm, 1986)的工作。這個方程的推導過程比較簡單,將物理量按小量 [公式] 展開

[公式]

代入可壓縮NS方程,根據需要略去高階項後,就是lMnNS方程。簡化後,壓力分裂為熱壓 [公式] 和動壓 [公式] 兩項。相對於NS方程,動量方程中壓力 [公式] 和密度解耦,濾除了聲波 [公式] 相關過程(sound filtered)。熱壓是空間均勻的,僅是時間的函數,只出現在能量方程中。lMnNS方程的性質是橢圓型的,可以選擇基於壓力的數值方法離散求解,比如fractional-step method/projection method,simple演算法。這區別於求解可壓縮方程的基於密度的方法。

小結,基於lMnNS的方法,缺點是

a,適用性變窄,當馬赫數不再時是小量時 [公式],模型本身的誤差就不能忽略。

優點包括

a,計算量相對較小。

b,專一性更強。工程應用前景變窄,更適合科學問題。很多低速物理問題,比如浮力對流,不關心聲速相關的可壓縮效應,而很多時候又必須考慮non-Oberbeck-Boussinesq(NOB)效應的影響,lMnNS方程模型就比較合適。這類物理問題也存在對應的工程背景,比如室內火災,核電站內部的換熱對流等。如果溫度變化比較小,就可以假設密度是溫度的線性關係,lMnNS方程就退化至Oberbeck-Boussinesq方程。後者是處理浮力對流最常用方程。

4,其它

還存在一些處理辦法

1,Jacobi矩陣可以分裂為只含有對流項和只含有聲波項的兩部分。前者使用基於迎風格式的顯式推進,後者可以使用基於中心差分格式的隱式演算法處理(C Wall, j comput phys, 2002)。隱式處理聲速項,可以有效的放鬆CFL數的限制。

2,Mach-uniform方法,可以參考P Wesseling的相關工作。Wesseling在專著《Principles of Computational Fluid Dynamics》中有詳細的敘述。這本書有電子版,國內也有出版影印版,寫的相當不錯。

3,可壓縮NS方程,也可以直接以小量 [公式] 展開。得到的方程組,仍然包含聲速相關的方程。這是對lMnNS簡化模型的擴展(R Klein, j comput phys, 1995)。

以上。


如果是非定常問題的話,用可壓流的求解器求解不可壓(小馬赫數),時間步長太小。

因為對於可壓流,壓強擾動以聲速傳播,CFL條件u*dt/dx&<1的速度u是聲速,即acoustic CFL。

如果作為不可壓處理,CFL條件的速度u是流體速度,即convective CFL。

對於一般的流體,速度都是小於聲速的,所以不可壓流中滿足CFL穩定性的dt能夠相比於可壓流變大。


可壓NS/歐拉方程在低馬赫數時會變得stiff/ill-conditioned,定常和非定常問題都會因此變得難解。常用辦法是進行low-mach number preconditioning,本質上是把方程變化到{p, T, u}的形式。如果要同時保證滿足守恆形式,可以用dual-time stepping。另一種方法是換成低馬赫數求解器,但這樣所有和可壓縮性有關的物理過程都不能做了。
預處理吧。0.1馬赫還是可以直接算的,但一般極低馬赫數都是0.001到0.01,不處理很難收斂。
密度變化太小,數值誤差變大,收斂性變差。有可能治標的辦法:雙精度浮點,高階格式。治本的辦法:換不可壓的求解器。


主要密度變化太小,方程剛性非常大,兩種方法,第一個就是對時間格式加預處理,第二種就是使用不可壓專門的求解器,如果使用商業軟體可以看看那有沒有simple演算法。

但是0.1Mach速度並不是特別低,一般情況下應該沒有問題,空間格式盡量選中心格式


主要問題是方程求解過程中的剛性,一般會導致收斂的困難。可以通過預處理方法克服,如何能更好地降低方程的條件數就和預處理矩陣的選擇有關。推薦你看一些不可壓流體計算的方法。
推薦閱讀:
相關文章