**有限体积法**（ 英文：**finite volume method** ）是一种以数值方法解偏微分方程的計算方式。 在有限體積法中，將要描述的物理實體切分為網格單元來描述，並使用发散定理，將所有包含发散项的偏微分方程中的體積積分轉換為表面积分。然后將每個網格的项加總，便成為每個有限體積表面的通量。因为進入给定體積的通量与离开相鄰體積的通量相同，所以这些方法是守恆的。该方法用於许多计算流体动力学軟體。

有限体积法常被拿來與有限元素分析做比較，后者使用節點值来近似導數，或者使用有限元方法来使用局部數值来逼近解的局部近似值，并通過將它們加總在一起来形成全域近似值。另一方面，有限體積法會計算某个體積中的網格解之平均，然后使用此平均值来決定單元内解的近似值。

舉例
--

一维平流問題：

{\displaystyle \quad (1)\qquad \qquad {\frac {\partial \rho }{\partial t}}+{\frac {\partial f}{\partial x}}=0,\quad t\geq 0.}
{\displaystyle \rho =\rho \left(x,t\right)\ }在這裡代表狀態變量， {\displaystyle f=f\left(\rho \left(x,t\right)\right)\ }代表的通量或流量{\displaystyle \rho \ } 。習慣上，{\displaystyle f\ }正值代表向右流動，而{\displaystyle f\ }負值代表向左流動。如果假設式（1）表示恆定面積的流動介質，則可以空间域 {\displaystyle x\ } ，细分為數個網格單元*，*以每個網格單元所佔的有限體積以{\displaystyle i\ }作為標記 。對於特定的單元{\displaystyle i\ } ，我们可以定義該體積某物理量（ 壓力、溫度等 ）之通量或流量平均值{\displaystyle {\rho }\_{i}\left(t\right)=\rho \left(x,t\right)\ }在時間{\displaystyle {t=t\_{1}}\ }和{\displaystyle {x\in \left[x\_{i-{\frac {1}{2}}},x\_{i+{\frac {1}{2}}}\right]}\ } ，如式（2）

{\displaystyle \quad (2)\qquad \qquad {\bar {\rho }}\_{i}\left(t\_{1}\right)={\frac {1}{x\_{i+{\frac {1}{2}}}-x\_{i-{\frac {1}{2}}}}}\int \_{x\_{i-{\frac {1}{2}}}}^{x\_{i+{\frac {1}{2}}}}\rho \left(x,t\_{1}\right)\,dx,}
而在時間{\displaystyle {t=t\_{2}}\ }時式（2）可寫為：

{\displaystyle \quad (3)\qquad \qquad {\bar {\rho }}\_{i}\left(t\_{2}\right)={\frac {1}{x\_{i+{\frac {1}{2}}}-x\_{i-{\frac {1}{2}}}}}\int \_{x\_{i-{\frac {1}{2}}}}^{x\_{i+{\frac {1}{2}}}}\rho \left(x,t\_{2}\right)\,dx,}
此處{\displaystyle x\_{i-{\frac {1}{2}}}\ }和{\displaystyle x\_{i+{\frac {1}{2}}}\ }分别代表上游和下游面或網格單元的交界面位置{\displaystyle i^{th}\ }。

將式（1）積分，可得：

{\displaystyle \quad (4)\qquad \qquad \rho \left(x,t\_{2}\right)=\rho \left(x,t\_{1}\right)-\int \_{t\_{1}}^{t\_{2}}f\_{x}\left(x,t\right)\,dt,}
當{\displaystyle f\_{x}={\frac {\partial f}{\partial x}}} 。

為了得到在時間{\displaystyle t=t\_{2}\ } 的有限體積平均值{\displaystyle \rho \left(x,t\right)}，在此積分位於整個有限體積的所有網格的流量{\displaystyle \rho \left(x,t\_{2}\right)}，並{\displaystyle \left[x\_{i-{\frac {1}{2}}},x\_{i+{\frac {1}{2}}}\right]}並將計算结果除以{\displaystyle \Delta x\_{i}=x\_{i+{\frac {1}{2}}}-x\_{i-{\frac {1}{2}}}} ，即可得：

{\displaystyle \quad (5)\qquad \qquad {\bar {\rho }}\_{i}\left(t\_{2}\right)={\frac {1}{\Delta x\_{i}}}\int \_{x\_{i-{\frac {1}{2}}}}^{x\_{i+{\frac {1}{2}}}}\left\{\rho \left(x,t\_{1}\right)-\int \_{t\_{1}}^{t\_{2}}f\_{x}\left(x,t\right)dt\right\}dx.}
我們可以逆向積分的順序。同样，请记住，流量垂直於單元的表面。現在，因为一维{\displaystyle f\_{x}\triangleq \nabla \cdot f} ，我们可以應用散度定理，即{\displaystyle \oint \_{v}\nabla \cdot fdv=\oint \_{S}f\,dS} ，并用的值代替散度的体积积分{\displaystyle f(x)\ }在網格單元表面計算（某單元與其他單元之前後交界面{\displaystyle x\_{i-{\frac {1}{2}}}\ }和{\displaystyle x\_{i+{\frac {1}{2}}}\ } ）的有限體積如下：

{\displaystyle \quad (6)\qquad \qquad {\bar {\rho }}\_{i}\left(t\_{2}\right)={\bar {\rho }}\_{i}\left(t\_{1}\right)-{\frac {1}{\Delta x\_{i}}}\left(\int \_{t\_{1}}^{t\_{2}}f\_{i+{\frac {1}{2}}}dt-\int \_{t\_{1}}^{t\_{2}}f\_{i-{\frac {1}{2}}}dt\right).}
當{\displaystyle f\_{i\pm {\frac {1}{2}}}=f\left(x\_{i\pm {\frac {1}{2}}},t\right)} 。

因此，對于上述問題，我们可以得出一个半離散的數值格式，其單元中心的索引為{\displaystyle i\ } ，且單元交界面通量的索引為{\displaystyle i\pm {\frac {1}{2}}} ，通過對時間對式（6）進行微分，可得：

{\displaystyle \quad (7)\qquad \qquad {\frac {d{\bar {\rho }}\_{i}}{dt}}+{\frac {1}{\Delta x\_{i}}}\left[f\_{i+{\frac {1}{2}}}-f\_{i-{\frac {1}{2}}}\right]=0,}
通過某單元交界面通量的值{\displaystyle f\_{i\pm {\frac {1}{2}}}}可以通过對單元平均值进行内插或外推来獲得。式（7）對於該有限體積的平均值是精确的，因為在推導過程中未進行任何近似。

該方法也可以應用於2D形況，只要同時考慮單元四周交界面，北面、南面、东面和西面即可。

一般守恆法則
------

我們還可以考慮以下PDE代表的一般守恒定律問題，

{\displaystyle \quad (8)\qquad \qquad {{\partial {\mathbf {u} }} \over {\partial t}}+\nabla \cdot {\mathbf {f} }\left({\mathbf {u} }\right)={\mathbf {0} }.}
此處 {\displaystyle {\mathbf {u} }\ }代表狀態向量{\displaystyle \mathbf {f} \ }代表相应的通量張量。同样，我們可以將空間域细分為有限體積的網格單元。對於特定的網格單元{\displaystyle i\ } ，將體積積分乘以單元的總體積 {\displaystyle v\_{i}\ } ， 如式（9）。

{\displaystyle \quad (9)\qquad \qquad \int \_{v\_{i}}{{\partial {\mathbf {u} }} \over {\partial t}}\,dv+\int \_{v\_{i}}\nabla \cdot {\mathbf {f} }\left({\mathbf {u} }\right)\,dv={\mathbf {0} }.}
將第一項積分可得体积平均值*，*然后将散度定理應用於第二項，可得：

{\displaystyle \quad (10)\qquad \qquad v\_{i}{{d{\mathbf {\bar {u}} }\_{i}} \over {dt}}+\oint \_{S\_{i}}{\mathbf {f} }\left({\mathbf {u} }\right)\cdot {\mathbf {n} }\ dS={\mathbf {0} },}
此處{\displaystyle S\_{i}\ }代表單元的總表面積， {\displaystyle {\mathbf {n} }}是垂直於表面並指向外的單位向量。最后，可得一般结果如式（11）。

{\displaystyle \quad (11)\qquad \qquad {{d{\mathbf {\bar {u}} }\_{i}} \over {dt}}+{{1} \over {v\_{i}}}\oint \_{S\_{i}}{\mathbf {f} }\left({\mathbf {u} }\right)\cdot {\mathbf {n} }\ dS={\mathbf {0} }.}
同樣的，可以通過對單元平均值进行内插或外推来重建交界面通量的值。實際的數值將取决於問題的幾何形狀和軮格結構。 

有限体积方案是守恆的，因為單元平均会通过交界面通量而變化。換句話說，某個單元所損失的物理量，必定會通過交界面而被另一單元所獲得！

相關文獻
----

* **Eymard, R. Gallouët, T. R. Herbin, R.（英语：）** (2000) *The finite volume method* Handbook of Numerical Analysis, Vol. VII, 2000, p. 713–1020. Editors: P.G. Ciarlet and J.L. Lions.
* **Hirsch, C.** (1990), *Numerical Computation of Internal and External Flows, Volume 2: Computational Methods for Inviscid and Viscous Flows*, Wiley.
* **Laney, Culbert B.** (1998), *Computational Gas Dynamics*, Cambridge University Press.
* **LeVeque, Randall** (1990), *Numerical Methods for Conservation Laws*, ETH Lectures in Mathematics Series, Birkhauser-Verlag.
* **LeVeque, Randall** (2002), *Finite Volume Methods for Hyperbolic Problems*, Cambridge University Press.
* **Patankar, Suhas V.** (1980), *Numerical Heat Transfer and Fluid Flow*, Hemisphere.
* **Tannehill, John C.**, et al. (1997), *Computational Fluid mechanics and Heat Transfer*, 2nd Ed. Taylor and Francis.
* **Toro, E. F.** (1999), *Riemann Solvers and Numerical Methods for Fluid Dynamics*, Springer-Verlag.
* **Wesseling, Pieter** (2001), *Principles of Computational Fluid Dynamics*, Springer-Verlag.

参考資料
----

1. ↑  LeVeque, Randall.. 2002  [2020-12-23]. ISBN 9780511791253. （原始内容存档于2020-10-23）.
2. ↑  Fallah, N. A.; Bailey, C.; Cross, M.; Taylor, G. A.. Applied Mathematical Modelling. 2000-06-01, **24** (7): 439–455. ISSN 0307-904X. doi:10.1016/S0307-904X(99)00047-5 （英语）.
3. ↑  Ranganayakulu, C. (Chennu).. . Seetharamu, K. N. Hoboken, NJ. ISBN 978-1-119-42435-2. OCLC 1006524487.

外部連結
----

* Finite volume methods （页面存档备份，存于） by R. Eymard, T Gallouët and R. Herbin（英语：）, update of the article published in Handbook of Numerical Analysis, 2000
* Rübenkönig, Oliver.. （原始内容存档于2009-10-02）. , available under the GFDL.
* FiPy: A Finite Volume PDE Solver Using Python （页面存档备份，存于） from NIST.
* CLAWPACK （页面存档备份，存于）: a software package designed to compute numerical solutions to hyperbolic partial differential equations using a wave propagation approach

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| * 
* 论
* 编
数值偏微分方程 |
| --- |
|  |
| 有限差分法 | 

|  |  |
| --- | --- |
| 热传导方程及其相关 | FTCS 格式 · 克兰克-尼科尔森方法 |
|  |
| 双曲方程 | Lax–Friedrichs 方法 · Lax–Wendroff 方法 · MacCormack 方法 · 迎风格式 · 特征线法 |
|  |
| 其他方法 | 交替方向隐式法（ADI） · 时域有限差分（FDTD） |

 |
|  |
| 有限体积法 | 戈杜诺夫格式 · High-resolution scheme · MUSCL 格式 · AUSM · Riemann solver |
|  |
| 有限元法 | hp-FEM · 扩展有限元法 · 不连续伽辽金法(Galerkin) · Spectral element method · Meshfree methods · Mortar methods |
|  |
| 无网格方法 | 光滑粒子流体动力学 (SPH) · 移动粒子半隐式法 (MPS) · Material point method (MPM) |
|  |
| 区域分解法 | Schur complement method · Fictitious domain method · Schwarz alternating method · Additive Schwarz method · Abstract additive Schwarz method · Neumann–Dirichlet method · Neumann–Neumann methods · Poincaré–Steklov operator · Balancing domain decomposition · BDDC · FETI · FETI-DP |
|  |
| 其他方法 | 谱方法 · 拟谱方法 · Method of lines · 多重网格法 · Collocation method · 水平集方法 · Boundary element method · Analytic element method · Particle-in-cell · 無限差分法 · 無限单元法 · 基本解方法 |

 |