Finite volume method
The finite volume method is a method for representing and evaluating partial differential equations in the form of algebraic equations [LeVeque, 2002; Toro, 1999]. Similar to the finite difference method or finite element method, values are calculated at discrete places on a meshed geometry. "Finite volume" refers to the small volume surrounding each node point on a mesh. In the finite volume method, volume integrals in a partial differential equation that contain a divergence term are converted to surface integrals, using the divergence theorem. These terms are then evaluated as fluxes at the surfaces of each finite volume. Because the flux entering a given volume is identical to that leaving the adjacent volume, these methods are conservative. Another advantage of the finite volume method is that it is easily formulated to allow for unstructured meshes. The method is used in many computational fluid dynamics packages.
Contents
1D example
Consider a simple 1D advection problem defined by the following partial differential equation
\[\quad (1) \qquad \qquad \frac{\partial\rho}{\partial t}+\frac{\partial f}{\partial x}=0,\quad t\ge0.\]
Here, \( \rho=\rho \left( x,t \right) \ \) represents the state variable and \( f=f \left( \rho \left( x,t \right) \right) \ \) represents the flux or flow of \( \rho \ \). Conventionally, positive \( f \ \) represents flow to the right while negative \( f \ \) represents flow to the left. If we assume that equation (1) represents a flowing medium of constant area, we can sub-divide the spatial domain, \( x \ \), into finite volumes or cells with cell centres indexed as \( i \ \). For a particular cell, \( i \ \), we can define the volume average value of \( {\rho }_i \left( t \right) = \rho \left( x, t \right) \ \) at time \( {t = t_1 }\ \) and \({ x \in \left[ x_{i-\frac{1}{2}} , x_{i+\frac{1}{2}} \right] }\ \), as
\[\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 ,\]
and at time \( {t = t_2}\ \) as,
\[\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 ,\]
where \( x_{i-\frac{1}{2}} \ \) and \( x_{i+\frac{1}{2}} \ \) represent locations of the upstream and downstream faces or edges respectively of the \( i^{th} \ \) cell.
Integrating equation (1) in time, we have:
\[\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,\]
where \(f_x=\frac{\partial f}{\partial x}\).
To obtain the volume average of \( \rho\left(x,t\right) \) at time \( t=t_{2} \ \), we integrate \( \rho\left(x,t_2 \right) \) over the cell volume, \(\left[ x_{i-\frac{1}{2}} , x_{i+\frac{1}{2}} \right] \) and divide the result by \(\Delta x_i = x_{i+\frac{1}{2}}-x_{i-\frac{1}{2}} \), i.e.
\[ \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.\]
We assume that \( f \ \) is well behaved and that we can reverse the order of integration. Also, recall that flow is normal to the unit area of the cell. Now, since in one dimension \(f_x \triangleq \nabla f \), we can apply the divergence theorem, i.e. \(\oint_{v}\nabla\cdot fdv=\oint_{S}f\, dS \), and substitute for the volume integral of the divergence with the values of \(f(x) \ \) evaluated at the cell surface (edges \(x_{i-\frac{1}{2}} \ \) and \( x_{i+\frac{1}{2}} \ \)) of the finite volume as follows:
\[\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) .\]
where \(f_{i \pm \frac{1}{2}} =f \left( x_{i \pm \frac{1}{2}}, t \right) \).
We can therefore derive a semi-discrete numerical scheme for the above problem with cell centres indexed as \( i\ \), and with cell edge fluxes indexed as \( i\pm\frac{1}{2} \), by differentiating (6) with respect to time to obtain:
\[\quad (7) \qquad \qquad \frac{d \bar{\rho}_i}{d t} + \frac{1}{\Delta x_i} \left[ f_{i + \frac{1}{2}} - f_{i - \frac{1}{2}} \right] =0 ,\]
where values for the edge fluxes, \( f_{i \pm \frac{1}{2}} \), can be reconstructed by interpolation or extrapolation of the cell averages. Equation (7) is exact for the volume averages; i.e., no approximations have been made during its derivation.
General conservation law
We can also consider the general conservation law problem, represented by the following PDE,
\[ \quad (8) \qquad \qquad {{\partial {\mathbf u}} \over {\partial t}} + \nabla \cdot {\mathbf f}\left( {\mathbf u } \right) = {\mathbf 0} . \]
Here, \( {\mathbf u} \ \) represents a vector of states and \(\mathbf f \ \) represents the corresponding flux tensor. Again we can sub-divide the spatial domain into finite volumes or cells. For a particular cell, \(i \ \), we take the volume integral over the total volume of the cell, \(v _{i} \ \), which gives,
\[ \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} .\]
On integrating the first term to get the volume average and applying the divergence theorem to the second, this yields
\[\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}, \]
where \( S_{i} \ \) represents the total surface area of the cell and \({\mathbf n}\) is a unit vector normal to the surface and pointing outward. So, finally, we are able to present the general result equivalent to (7), i.e.
\[ \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} .\]
Again, values for the edge fluxes can be reconstructed by interpolation or extrapolation of the cell averages. The actual numerical scheme will depend upon problem geometry and mesh construction. MUSCL reconstruction is often used in high resolution schemes where shocks or discontinuities are present in the solution.
Finite volume schemes are conservative as cell averages change through the edge fluxes. In other words, one cell's loss is another cell's gain!
See also
- Flux limiter
- Godunov's theorem
- High-resolution scheme
- KIVA (Software)
- MIT General Circulation Model
- MUSCL scheme
- Sergei K. Godunov
- Total variation diminishing
References
- 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.
- LeVeque, Randall (2002), Finite Volume Methods for Hyperbolic Problems, Cambridge University Press.
- Toro, E. F. (1999), Riemann Solvers and Numerical Methods for Fluid Dynamics, Springer-Verlag.
Further reading
- 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.
- 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.
- Wesseling, Pieter (2001), Principles of Computational Fluid Dynamics, Springer-Verlag.
External links
- The finite volume method by R. Eymard, T Gallouët and R. Herbin, update of the article published in Handbook of Numerical Analysis, 2000
- The Finite Volume Method (FVM) - An introduction[dead link] by Oliver Rübenkönig of Albert Ludwigs University of Freiburg, available under the GFDL. (Archive copy at the Wayback Machine)
- 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
|
fr:Méthode des volumes finis it:Metodo dei volumi finiti ja:有限体積法 pt:Método dos volumes finitos ru:Метод конечных объёмов tr:Sonlu hacim yöntemi