殘差一定要降到1e-03以下才代表收斂嗎?【轉(zhuǎn)發(fā)】
2017-08-15 by:CAE仿真在線 來源:互聯(lián)網(wǎng)
太長不看版
判斷收斂不僅要看殘差,而且要使用monitor來監(jiān)測計算結(jié)果隨迭代次數(shù)的變化情況。另一種方法是使用雙精度求解器:當(dāng)采用單精度求解器算到殘差不再下降的時候,采用雙精度求解器繼續(xù)計算,如果殘差能繼續(xù)顯著下降,那就說明計算是收斂的,否則就說明計算不收斂。
總所周知FLUENT的默認(rèn)收斂標(biāo)準(zhǔn)是殘差降低到1e-03以下(能量方程和P-1方程除外,這兩個方程的默認(rèn)收斂標(biāo)準(zhǔn)是1e-06)。但是,殘差降低到1e-03以下和收斂是否有必然聯(lián)系呢?換句話說,殘差不能降到1e-03以下,是否意味著不收斂?
先看兩個例子。
例1:三維方腔突擴(kuò)突縮流動
這是公眾號先前的文章“為何我這個流動總是算不收斂?我要砸電腦!”中的例子。如圖1所示,一個邊長為2m的立方體連接著兩根方形截面的管子。入口流速是1m/s,流體的密度是1kg/m3,粘性系數(shù)是10-5Pa?s。以入口流速為特征速度,入口截面的邊長為特征長度,則流動雷諾數(shù)為105,所以流態(tài)是湍流流動。坐標(biāo)原點位于立方體的中心,坐標(biāo)軸的方向如圖所示。使用FLUENT中的基于壓力的求解器計算,速度和壓力的耦合(Pressure-Velocity Coupling)采用SIMPLE算法,湍流模型使用k-ω SST。入口使用velocity-inlet邊界條件,流速按上述條件設(shè)置。入口的湍流參數(shù)設(shè)為:湍流強(qiáng)度=5%,水力直徑=1m。出口使用pressure-outlet邊界條件,回流的湍流參數(shù)設(shè)為與入口相同。計算前的初始流場按照入口邊界的數(shù)值初始化。
圖1 例1
用定常算法(Steady)來計算,發(fā)現(xiàn)迭代500次之后,各方程的殘差都開始振蕩,在1e-02和1e-03之間徘徊,不再下降;特別是k方程和ω方程的殘差,從來未曾下降到1e-03以下(圖2)。
圖2 例1——殘差曲線
使用monitor監(jiān)測點(-0.5,0.5,0.5)處的流速隨迭代次數(shù)的變化情況,其曲線振蕩得非常厲害(圖3)。所以顯然這個題沒有收斂。
圖3 例1——(-0.5,0.5,0.5)處的速度隨迭代次數(shù)的變化情況
例2:圓管內(nèi)的湍流流動
空氣(密度=1.225kg/m3,粘性系數(shù)=1.7894×10-5Pa?s)流過一根直徑為0.03m,長度為2.4m的圓管,使用二維軸對稱模型計算,入口使用速度入口(velocity-inlet)條件,參數(shù)設(shè)為:流速=10m/s,湍流強(qiáng)度=5%,水力直徑=0.03m,出口使用壓力出口(pressure-outlet)條件。使用基于壓力的求解器,算法為SIMPLE,湍流模型采用標(biāo)準(zhǔn)k-ε模型。計算前的初始流場按照入口邊界的數(shù)值初始化。
圖4 例2——管道入口附近的網(wǎng)格
殘差曲線如圖5所示。可以看出,雖然其它幾個方程的殘差都降到很低,但是連續(xù)方程的殘差降低到2e-2左右就不再下降了。
圖5 例2——殘差曲線
但是,如果我們使用monitor監(jiān)測流場的變化情況,可以發(fā)現(xiàn)隨著迭代次數(shù)的增加,流場并沒有發(fā)生變化(圖6-圖9),所以這個題是收斂的。
圖6 例2——管道入口壓力隨迭代次數(shù)的變化
圖7 例2——管道入口附近某個點的速度隨迭代次數(shù)的變化
圖8 例2——管道中部某個點的速度隨迭代次數(shù)的變化
圖9 例2——管道出口附近某個點的速度隨迭代次數(shù)的變化
從這兩個例子可以看出,并不能用殘差是否能降低到1e-03以下來判斷收斂。其實,在FLUENT的User’s Guide [1]中“Judging Convergence”這一節(jié)中,也指出了判斷收斂不僅要看殘差,而且要使用monitor來監(jiān)測計算結(jié)果隨迭代次數(shù)的變化情況。要弄清這個問題,需要知道FLUENT是怎樣計算殘差的,關(guān)于這方面的內(nèi)容在FLUENT User’sGuide中“Definitionof Residuals for the Pressure-Based Solver”和“Definition of Residuals for the Density-Based Solver”中有介紹。例如,FLUENT的基于壓力的求解器在計算連續(xù)方程的殘差的時候,會將每次迭代的殘差都除以最初5次迭代的殘差,然后才顯示到殘差曲線圖上。因此,如果用戶在迭代之前設(shè)定的初始條件已經(jīng)比較接近實際的流場,那么最初5次迭代的殘差就會比較小,這樣的話殘差曲線上顯示出來的數(shù)值就會比較大(這正是例2中發(fā)生的情況)。
用FLUENT計算一個題,如果已經(jīng)計算到殘差不再下降了,這時判斷是否收斂的一種方法是采用monitor監(jiān)測計算結(jié)果隨迭代次數(shù)的變化情況。此外還有一種方法,那就是改用雙精度(double-precision)求解器。例如,對于上面的兩個例子,如果我們分別改用雙精度求解器來計算,那么將得到圖10、圖11所示的殘差曲線??梢钥闯?對于例1,改用雙精度求解器之后,殘差沒有顯著變化;而對于例2,改用雙精度求解器之后,連續(xù)方程的殘差可以降低到1e-08以下。注意,這里對每個題都采用雙精度求解器從頭開始計算,其實在實際的計算中,可以將單精度求解器計算的結(jié)果導(dǎo)入到雙精度求解器中繼續(xù)計算。
圖10 例1——殘差曲線。雙精度求解器。
圖11 例2——殘差曲線。雙精度求解器。
也就是說,計算一個題,當(dāng)采用單精度求解器算到殘差不再下降的時候,采用雙精度求解器繼續(xù)計算,如果殘差能繼續(xù)顯著下降,那就說明計算是收斂的,否則就說明計算不收斂。這其中的道理其實很簡單。殘差不能下降的原因有兩種,一種是因為計算誤差已經(jīng)降低到機(jī)器精度,而另一種則是因為設(shè)置不當(dāng)導(dǎo)致計算不收斂(例如使用定常的求解器計算具有強(qiáng)烈的非定常分離的流動)。單精度求解器是使用單精度浮點數(shù)計算的,其機(jī)器精度大約有7位有效數(shù)字;而雙精度求解器是使用雙精度浮點數(shù)計算的,其機(jī)器精度大約有16位有效數(shù)字。因此,如果殘差不能降低是機(jī)器精度導(dǎo)致的,那么改用雙精度求解器之后殘差可以繼續(xù)顯著降低。反之,如果殘差不能降低是計算不收斂導(dǎo)致的,那么改用雙精度求解器是無濟(jì)于事的。
作者感謝北京航空航天大學(xué)宇航學(xué)院的研究生張少卿和馮盛;他們提供了例2的素材。另外,北航宇航學(xué)院的研究生衣然閱讀了本文的初稿并提出了很好的建議。
轉(zhuǎn)自公眾號: 流體那些事兒 葉漢玉
相關(guān)標(biāo)簽搜索:殘差一定要降到1e-03以下才代表收斂嗎?【轉(zhuǎn)發(fā)】 Fluent培訓(xùn) Fluent流體培訓(xùn) Fluent軟件培訓(xùn) fluent技術(shù)教程 fluent在線視頻教程 fluent資料下載 fluent分析理論 fluent化學(xué)反應(yīng) fluent軟件下載 UDF編程代做 Fluent、CFX流體分析 HFSS電磁分析