有限元素法與有限體積法

有限體積法(finite volume method)

許多物理定律都是守恆律:物質、動量與能量不會被創造或消滅,只會被搬來搬去。有限體積法的設計就是要在電腦上「精確地」尊重這個事實。你把區域切成一個個小盒子(控制體積),並為每個盒子嚴格記一本帳:盒內物質的變化率,等於透過其表面流「進」的減去流「出」的。沒有任何洩漏;帳目在構造上永遠平衡。

其機制如下。從一條守恆律出發,形式為 (某量的變化率) + (其通量的散度) = 源項。把它在一個控制體積上積分並套用散度定理:通量散度的體積積分變成通量在盒子各「表面」上的面積分。於是離散更新為:格 i 的新平均 = 舊平均 + (時間步 / 格體積) * (穿過所有面的通量總和,進減出)。未知數是格「平均」,而非點值。決定性的特徵是:離開格 i 穿過共用面的通量,恰好等於進入其鄰居穿過同一面的通量——同數、反號——所以當你對所有格求和時,每個內部通量都成對抵消(一個伸縮級數)。總量只透過區域的外邊界改變。這就是「離散」守恆,無論網格品質如何都成立到機器精度。

這就是為何有限體積法主宰計算流體力學,以及任何有激波、鋒面或嚴格守恆要求的問題。與有限元素相比,它直接從守恆律出發(而非弱形式),天然處理非結構網格與不連續解,也絕不憑空生出或弄丟質量。方法誠實的核心是每個面上的「通量」:面兩側的格平均對該面上的值各執一詞,所以你必須選一個數值通量來調和它們——而這單一選擇(中心式對迎風式、有無限制器)決定了方法的精度與穩定性,尤其對對流主導與激波問題。

對對流 u_t + (a u)_x = 0,在寬度為 dx 的一維格網上,有限體積更新為 u_i^{new} = u_i - (dt/dx) (F_{i+1/2} - F_{i-1/2}),其中 F_{i+1/2} 是右面上的數值通量。因為格 i 的右面通量 F_{i+1/2} 在這裡被減去、在格 i+1 中被「加上」,對所有格求和後只剩下兩端面的通量——總質量被精確守恆。

穿過共用面的通量成對抵消,所以離散守恆律精確成立。

有限體積法在構造上精確守恆——但精確守恆「不」蘊含精確:差的數值通量可能守恆卻嚴重抹糊或振盪。守恆與精度是兩個分開的目標,而通量的選擇主宰兩者。

又稱
FVMcontrol-volume methodconservative discretization有限體積FV