热门问题
时间线
聊天
视角

數值擴散

来自维基百科,自由的百科全书

Remove ads

數值擴散(Numerical diffusion)是對連續體(像是流體)進行計算機模擬的困難點,模擬的系統會出現比實際系統要顯著的擴散。 當真實系統不應該擴散時,此問題會格外嚴重,例如在理想流體的數值模型中出現虛假的粘滯力。

說明

歐拉方法中會將時間和空間分割成離散的格點,將運動的微分方程(例如納維-斯托克斯方程)離散成差分方程[1]。離散方程的擴散作用比其原始微分方程要大,因此所模擬的結果會和實際系統的行為不同[2]。差異的大小以及特性會和模擬的系統以及離散化的方法有關。大部份流力動力學或磁流體力學模擬都希望將數值擴散的效果降到越低越好,以達到模擬的高可信度,不過有些情形會刻意加入擴散以避免奇點。例如流體的激波等離子體電流片英語current sheet在一些近似下是無限薄的,這會增加數值分析困難度。一個簡單的處理方式就是加入擴散,讓系統變的比較平滑。高階的數值方法(包括譜法)會比低階的數值擴散要少。

例子

舉一個數值擴散的例子,考慮使用顯式時間提前(time-advance)的歐拉模擬處理一滴綠色染料滴到水中。若水是沿著網格的對角線方向流動,染料不可能完全的依照其路徑,在每一個時間步階,染料可能水平方向有些移動,或是垂直方向有些移動。在幾步之後,染料就會擴散到所有格點,有很高的數值擴散率[3]

若數值擴散發生在動量向量的分量時,稱為數值粘度(numerical viscosity),若是在磁場上,稱為numerical resistivity英語numerical resistivity

氣泡在水中的相場模擬

考慮高壓氣泡(藍色)在液態水(紅色)中的相場模型。因為空氣懸浮在水中時,沒有化學作用或熱力學作用,在模擬中不應該會有其他的相。這種兩個相之間的不精確是因為數值擴散,可以將多邊形網格變細,以減少此影響。

相關條目

參考資料

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads