CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Wiki > Finite volume

Finite volume

From CFD-Wiki

(Difference between revisions)
Jump to: navigation, search
m (Reverted edits by Reverse22 (talk) to last revision by Praveen)
 
(18 intermediate revisions not shown)
Line 1: Line 1:
-
Michail, if possible, please move the convection related things to convective descretisation, have a look at numerical method page, i made some changes.
+
The Finite Volume Method (FVM) is one of the most versatile discretization techniques used in CFD. Based on the control volume formulation of analytical fluid dynamics, the first step in the FVM is to divide the domain into a number of control volumes (aka cells, elements) where the variable of interest is located at the centroid of the control volume. The next step is to integrate the differential form of the governing equations (very similar to the control volume approach) over each control volume. Interpolation profiles are then assumed in order to describe the variation of the concerned variable between cell centroids. The resulting equation is called the discretized or discretization equation. In this manner, the discretization equation expresses the conservation principle for the variable inside the control volume.
-
thanks
+
-
Arjun
+
-
== Discretisation Schemes for convective terms in General Transport Equation. Finite-Volume Formulation, structured grids  ==
+
The most compelling feature of the FVM is that the resulting solution satisfies the conservation of quantities such as mass, momentum, energy, and species. This is '''exactly''' satisfied for any control volume as well as for the whole computational domain and '''for any number of control volumes'''. Even a coarse grid solution exhibits exact integral balances.<br>
 +
FVM is the ideal method for computing discontinuous solutions arising in compressible flows. Any discontinuity must satisfy the [[Rankine-Hugoniot jump condition]] which is a consequence of conservation. Since finite volume methods are conservative they automatically satisfy the jump conditions and hence give physically correct weak solutions.
-
== Introduction ==
+
FVM is also preferred while solving partial differential equations containing discontinuous coefficients.
-
Here is describing the discretization schemes of the convective terms in the finite-volume equations. The accuracy, numerical stability and the boundness of the solution depends on the numerical scheme used for these terms. The central issue is the specification of an appropriate relationship between the convected variable, stored at the cell centre and its value at each of the cell faces.
+
==Integral form of conservation law==
-
== Basic Equations of CFD ==
+
Consider a single partial differential equation in conservation form
-
All the conservation equations can be written in the same generic differential form:
+
:<math>
-
 
+
\frac{\partial u}{\partial t} + \nabla \cdot f(u) = 0
-
<table width="100%"><tr><td>
+
-
:<math>  
+
-
  \frac {\partial( \rho \phi )} {\partial t} + \frac{\partial}{\partial x_{i}} \left( \rho U \phi - \Gamma_{\phi} \frac{\partial\phi}{\partial x_{i}}\right)=S_{\phi}   
+
</math>
</math>
-
</td><td width="5%">(1)</td></tr></table>
 
-
Equation (1) is integrated over a control volume and the following discretised equation for <math>\boldsymbol{\phi}</math> is produced:
+
where <math>u</math> is a conserved quantity and
-
<table width="100%"><tr><td>
+
:<math>
-
:<math>  
+
f(u) = [ f_1(u), \ldots, f_d(u)]
-
J_{h}- J_{l} + J_{n}- J_{s} + J_{e}- J_{w} + D_{h} - D_{l} + D_{n} - D_{s} + D_{e} - D_{s} = S_{p}
+
</math>
</math>
-
</td><td width="5%">(2)</td></tr></table>
 
-
  where <math>\boldsymbol{S_{p}}</math> is the source term for the control volume <math>\boldsymbol{P}</math>, and <math>\boldsymbol{J_{f}}</math> and <math>\boldsymbol{D_{f}}</math> represent, respectively, the convective and diffusive fluxes of <math>\boldsymbol{\phi}</math> across the control-volume face <math>\boldsymbol{f}</math>
+
is the flux vector. Integrating this over any volume <math>V</math> in <math>R^d</math> we get the '''integral form''' of the conservation law
-
<math>\boldsymbol{(f=h,l,n,s,e,w)}</math> 
+
-
The convective fluxes through the cell faces are calculated as:
+
:<math>
-
 
+
\frac{\partial}{\partial t} \int_V u dx + \oint_{\partial V} f_i n_i ds = 0
-
<table width="100%"><tr><td>
+
-
:<math>  
+
-
  J_{f}=C_{f}\phi_{f}
+
</math>
</math>
-
</td><td width="5%">(1)</td></tr></table>
 
-
     
 
-
  where <math>C_{f}</math> is the mass flow rate across the cell face <math>f</math>. The convected variable <math>\phi_{f}</math> associated with this mass flow rate is usually stored at the cell centres, and thus some form of interpolation assumption must be made in order to determine its value at each cell face. The interpolation procedure employed for this operation is the subject of the various schemes proposed in the literature and the accuracy, stability and boundedness of the solution depends on the procedure used.
 
-
 
 
-
In general, the value of <math>\boldsymbol{\phi_{f}}</math> can be explicity formulated in terms of its neighbouring nodal values by a functional relationship of the form:
 
-
<table width="100%"><tr><td>
+
where the [[Greens theorem | divergence theorem]] has been used to convert the divergence term to a surface integral over the surface <math>\partial V</math> and <math>(n_1, \ldots, n_d)</math> is the unit outward normal to <math>\partial V</math>. The above equation is the starting point for the finite volume method.
-
:<math>  
+
-
  \phi_{f}=P  \left( \phi_{nb} \right)
+
-
</math>
+
-
</td><td width="5%">(1)</td></tr></table>
+
-
 
+
-
where <math>\boldsymbol{\phi_{nb}}</math> denotes the neighbouring-node <math>\boldsymbol{\phi}</math>values.
+
-
Combining equations (\ref{eq3}) through (\ref{eq4a}), the discretised equation becomes:
+
-
<table width="100%"><tr><td>
+
==Finite volume formulation==
-
:<math>
+
-
  \left\{ D_{h} + C_{h} \left[ P \left( \phi_{nb} \right) \right]_{h} \right\} -
+
-
        \left\{ D_{l} + C_{l} \left[ P \left( \phi_{nb} \right) \right]_{l} \right\} + 
+
-
        \left\{ D_{n} + C_{n} \left[ P \left( \phi_{nb} \right) \right]_{n} \right\} -  
+
The computational domain <math>V_h</math> is divided into non-overlapping cells or finite volumes
-
        \left\{ D_{s} + C_{s} \left[ P \left( \phi_{nb} \right) \right]_{s} \right\} + 
+
-
        \left\{ D_{e} + C_{e} \left[ P \left( \phi_{nb} \right) \right]_{e} \right\} -
+
:<math>V_r, r=1,\ldots, N, \quad V_h = \cup_r V_r
-
        \left\{ D_{w} + C_{w} \left[ P \left( \phi_{nb} \right) \right]_{w} \right\} = S_{p} 
+
</math>
</math>
-
</td><td width="5%">(1)</td></tr></table>
 
-
== Convection Schemes ==
+
Usually these cells are polygons (triangles, quadrilaterals) in 2-D and polyhedra (tetrahedron, hexahedron, prims, etc) in 3-D.
-
All the convection schemes involve a stencil of cells in which the values of <math>\boldsymbol{\phi}</math> will be used to construct the face value <math>\boldsymbol{\phi_{f}}</math>
+
Introduce the cell average value over the cell <math>V_r</math>
-
[[Image:picture_01.jpg]].
+
:<math>
-
 
+
u_r = \frac{1}{|V_r|} \int_{V_r} u(x) dx
-
 
+
-
Where flow is from left to right, and <math>\boldsymbol{f}</math> is the face in question.
+
-
 
+
-
<math>\boldsymbol{u}</math> - mean Upstream node
+
-
 
+
-
<math>\boldsymbol{c}</math> - mean Central node
+
-
 
+
-
<math>\boldsymbol{d}</math> - mean Downstream node
+
-
 
+
-
== Basic Discretisation schemes ==
+
-
 
+
-
=== Central Differencing Scheme (CDS)===
+
-
 
+
-
The most natural assumption for the cell-face value of the convected variable <math>\boldsymbol{\phi_{f}}</math> would appear to be the CDS, which calculates the cell-face value from:
+
-
 
+
-
<table width="100%"><tr><td>
+
-
:<math>
+
-
  \phi_{f}=0.5 \left( \phi_{c} + \phi_{d} \right)
+
</math>
</math>
-
</td><td width="5%">(1)</td></tr></table>
 
-
 
 
-
This scheme is 2nd-order accurate, but is unbounded so that unphysical oscillations appear in regions of strong convection and also in the presence of discontinuities such as shocks. The CDS may be used directly in very low Reynolds-number flows where diffusive effects dominate over convection.
 
-
=== Upwind Differencing Scheme (UDS)===
+
which is the basic unknown quantity in the finite volume method. Let
-
The UDS assumes that the convected variable at the cell fase <math>\boldsymbol{f}</math> is the same as the upwind cell-centre value:
+
:<math>
-
 
+
N(r) = \{ \mbox{Set of cells which share a common face with } V_r \}
-
<table width="100%"><tr><td>
+
-
:<math>
+
-
  \boldsymbol{\phi_{f}\phi_{c} }  
+
</math>
</math>
-
</td><td width="5%">(1)</td></tr></table>
 
-
   
 
-
The UDS is unconditionally bounded and highly stable, but as noted earlier it is only 1st-order accurate in terms of truncation error and may produce severe numerical diffusion. The scheme is therefore highly diffusive when the flow direction is skewed relative to the grid lines.
 
-
=== Hybrid Differencing Scheme (HDS) ===
+
Then the integral conservation law for cell <math>V_r</math> is
-
 
+
-
The HDS of Spalding [1972] switches the discretisation of the convection terms between CDS and UDS according to the local cell Peclet number as follows:
+
-
 
+
-
<table width="100%"><tr><td>
+
-
:<math>  
+
-
    \phi_{f}=0.5 \left( \phi_{c} + \phi_{d} \right) for Pe \triangleleft 2
+
 +
:<math>
 +
|V_r| \frac{du_r}{dt} + \sum_{s \in N(r)} \int_{V_r \cap V_s} f_i n_i ds = 0
</math>
</math>
-
</td><td width="5%">(1)</td></tr></table>
 
-
<table width="100%"><tr><td>
+
It now remains to approximate the flux integral. This can be achieved using gaussian quadrature. Taking <math>p</math> gaussian points we get
-
:<math>  
+
-
 
+
-
\phi_{f}=  \phi_{c}        for Pe \triangleright 2
+
 +
:<math>
 +
\int_{V_r \cap V_s} f_i n_i ds = \Delta s_{rs} \sum_{m=1}^p \omega_m F^m_{rs}
</math>
</math>
-
</td><td width="5%">(1)</td></tr></table>
 
-
     
 
-
The cell Peclet number is defined as:
 
-
 
-
<table width="100%"><tr><td>
 
-
:<math>
 
-
  Pe= \rho \left| U_{f} \right| A_{f}/D_{f}
 
-
</math>
 
-
</td><td width="5%">(1)</td></tr></table>
 
-
 
-
 
-
in which <math>\boldsymbol{A_{f}}</math> and <math>\boldsymbol{D_{f}}</math>  are respectively, the cell-face area and physical diffusion coefficient. When <math>\boldsymbol{Pe\triangleright 2}</math>
 
-
,CDS calculations tends to become unstable so that theHDS reverts to the UDS. Physical diffusion is ignored when <math>\boldsymbol{Pe\triangleright 2}</math>.
 
-
 
-
 
-
The HDS scheme is marginally more accurate than the UDS, because the 2nd-order CDS will be used in regions of low Peclet number.
 
-
 
-
== High Resolution Schemes (HRS) ==
 
-
 
-
=== Classification of High Resolution Schemes ===
 
-
 
-
HRS can be classified as ''linear'' or ''non-linear'', where ''linear'' means their coefficients are not direct functions of the convected variable when applied to a linear convection equation. It is important to recognise that linear convection schemes of 2nd-order accuracy or higher may suffer from unboudedness, and are not unconditionally stable.
 
-
 
-
''Non-linear'' schemes analyse the solution within the stencil and adapt the discretisation to avoid any unwanted behavior, such as unboundedness (see Waterson [1994]). These two types of schemes may be presented in a unified way by use of the ''Flux-Limiter'' formulation (Waterson and Deconinck [1995]), which calculates the cell-face value of the convected variable from:
 
-
 
-
<table width="100%"><tr><td>
 
-
:<math>
 
-
    \phi_{f}= \phi_{c} + 0.5 B \left( r \right) \left( \phi_{c}-\phi_{u} \right)   
 
-
</math>
 
-
</td><td width="5%">(1)</td></tr></table>
 
-
 
-
 
-
where <math>\boldsymbol{B \left( r \right)}</math> is termed a limiter function and the gradient ration <math>\boldsymbol{r}</math> is defined as:
 
-
 
-
 
-
<table width="100%"><tr><td>
 
-
:<math>
 
-
    r= \left( \phi_{d} - \phi_{c}  \right) / \left( \phi_{c} - \phi_{u}  \right)
 
-
</math>
 
-
</td><td width="5%">(1)</td></tr></table>
 
-
 
 
-
The generalisation of this approach to handle non-uniform meshes has been given by Waterson [1994]
 
-
 
-
From equation (\ref{eq9}) it can be seen that <math>\boldsymbol{B=1}</math> gives the UDS and <math>\boldsymbol{B=r}</math>
 
-
 
-
gives the CDS.
 
-
 
-
=== Numerical Implementation of HRS ===
 
-
 
-
The HRS schemes can be introdused into equation (\ref{eq4b}) by using the deffered correction procedure of Rubin and Khosla [1982]. This procedure express the cell-face value $\phi_{f}$ by:
 
-
 
-
<table width="100%"><tr><td>
 
-
:<math>
 
-
    \phi_{f}=\phi_{f}\left(U \right) + \phi^{'}_{f}
 
-
</math>
 
-
</td><td width="5%">(1)</td></tr></table>
 
-
 
-
where <math>\boldsymbol{\phi^{'}_{f}}</math> is a higher-order correction which represents the difference between the UDS face value <math>\boldsymbol{\phi_{f}\left(U \right)}</math> and the higher-order scheme value <math>\boldsymbol{\phi_{f}\left(H \right)}</math> , i.e.
 
-
 
-
<table width="100%"><tr><td>
 
-
:<math>
 
-
    \phi^{'}_{f}= \phi_{f}\left(H \right) +  \phi_{f}\left(U \right)
 
-
</math>
 
-
</td><td width="5%">(1)</td></tr></table>
 
-
 
-
If equation (\ref{eq10a}) is substituted into equation (\ref{eq4b}), the resulting discretised equation is:
 
-
 
-
<table width="100%"><tr><td>
 
-
:<math>
 
-
\left\{ D_{h} + C_{h} \phi_{h} \left( U \right) \right\} -
 
-
\left\{ D_{l} + C_{l} \phi_{l} \left( U \right) \right\} +
 
-
 
-
\left\{ D_{n} + C_{n} \phi_{n} \left( U \right) \right\} -
 
-
\left\{ D_{s} + C_{s} \phi_{s} \left( U \right) \right\} +
 
-
 
-
\left\{ D_{e} + C_{e} \phi_{e} \left( U \right) \right\} -
 
-
\left\{ D_{w} + C_{w} \phi_{w} \left( U \right) \right\} = S_{p} + B_{p}
 
-
</math>
 
-
</td><td width="5%">(1)</td></tr></table>
 
-
 
-
 
-
where <math>\boldsymbol{B_{p}}</math>  is the deferred-correction source terms, given by:
 
-
 
-
<table width="100%"><tr><td>
 
-
:<math>
 
-
  B_{p} = C_{l}\phi^{'}_{l} - C_{h}\phi^{'}_{h} +
 
-
  C_{s}\phi^{'}_{s} - C_{n}\phi^{'}_{n} +
 
-
  C_{w}\phi^{'}_{w} - C_{e}\phi^{'}_{e}
 
-
</math>
 
-
</td><td width="5%">(1)</td></tr></table>
 
-
 
 
-
  This treatment leads to a diagonally dominant coefficient matrix since it is formed using the UDS.
 
-
 
 
-
  The final form of the discretised equation:
 
-
 
 
-
<table width="100%"><tr><td>
 
-
:<math>
 
-
  a_{P}\phi_{P}= a_{N}\phi_{N} + a_{S}\phi_{S} + a_{E}\phi_{E} + a_{W}\phi_{W} + a_{H}\phi_{H} + a_{L}\phi_{L} + a_{T}\phi_{T} + S_{p} +  B_{p}
 
-
</math>
 
-
</td><td width="5%">(1)</td></tr></table>
 
-
 
-
 
-
Subscrit <math>\boldsymbol{P}</math> represents the current computational cell;  <math>\boldsymbol{N, S, E, W, H, L}</math>
 
-
represent the six neighbouring cells and <math>\boldsymbol{T}</math> represents the previous timestep (transistent cases only)
 
-
 
-
The coefficients contain the appropriate contributions from the transient, convective and diffusive terms in  (\ref{eq1})
 
-
 
-
== Normalised Variables ==
 
-
 
-
== Normalised Variables Diagram (NVD) ==
 
-
 
-
== Total Variation Diminishing (TVD) ==
 
-
 
-
== Convection Boundedness Criterion (CBC) ==
 
-
 
-
== Schemes ==
 
-
 
-
=== QUICK - Quadratic Upwind Interpolation for Convective Kinematics ===
 
-
 
-
=== LUS ===
 
-
 
-
=== Fromm - Fromm's Upwind Scheme ===
 
-
 
-
=== CUS - Cubic Upwind Difference Scheme ===
 
-
 
-
=== van Leer limiter ===
 
-
 
-
=== Chakravarthy-Osher limiter ===
 
-
 
-
=== Sweby \Phi - limiter ===
 
-
 
-
=== OSPRE ===
 
-
 
-
=== Superbee ===
 
-
 
-
=== MINMOD ===
 
-
 
-
=== ISNAS ===
 
-
 
-
=== MUSCL - Monotonic Upwind Scheme for Conservation Laws ===
 
-
 
-
=== UMIST ===
 
-
 
-
=== SOUCUP - Second-Order Upwind Central differnce-first order UPwind  ===
 
-
 
-
 
-
Zhu J. On the higher-order bounded discretization schemes for finite volume compuyations of incompressible flows // Computational Methods in Applied Mechanics and Engineering. 1992. 98. 345-360
 
-
 
-
=== HLPA ===
 
-
 
-
Zhu J. Low Diffusive and oscillation-free convection scheme // Communications and Applied Numerical Methods. 1991. 7, N3. 225-232.
 
-
 
-
Zhu J., Rodi W. A low dispersion and bounded discretization schemes  for finite volume computations of incompressible flows // Computational Methods for Applied Mechanics and Engineering. 1991. 92. 87-96
 
-
 
-
=== SMART ===
 
-
 
-
=== SMARTER ===
 
-
 
-
=== LPPA ===
 
-
 
-
=== SHARP ===
 
-
 
-
=== CHARM ===
 
-
 
-
=== VONOS ===
 
-
 
-
 
-
=== CUBISTA Convergent and Universally bounded Interpolation Scheme for the Treatment of Advection ===
 
-
 
-
A convergent and Universally Bounded Interpolation Scheme for the Treatment of Advection
 
-
 
-
M.A. Alves, P.J.Oliveira, F.T. Pinho
 
-
International Lournal For Numerical Methods in Fluids 2003, 41; 47-75
+
where <math>\omega_m</math> are the gaussian weights and <math>F</math> is an approximation to <math>f_i n_i</math>.
-
== Summary of Discretizations Schemes ==
+
== External links ==
 +
* [http://www.imtek.uni-freiburg.de/simulation/mathematica/imsReferencePointers/FVM_introDocu.html The Finite Volume Method (FVM) - An introduction] by Oliver Rübenkönig of Albert Ludwigs University of Freiburg, available under the GNU Free Document License|GFDL.
-
== Numerical examples ==
 
-
=== Smith-Hutton test ===
+
<i> Return to [[Numerical methods | Numerical Methods]] </i>
-
== Example code for solving Smith-Hutton test ==
+
{{stub}}

Latest revision as of 09:15, 3 January 2012

The Finite Volume Method (FVM) is one of the most versatile discretization techniques used in CFD. Based on the control volume formulation of analytical fluid dynamics, the first step in the FVM is to divide the domain into a number of control volumes (aka cells, elements) where the variable of interest is located at the centroid of the control volume. The next step is to integrate the differential form of the governing equations (very similar to the control volume approach) over each control volume. Interpolation profiles are then assumed in order to describe the variation of the concerned variable between cell centroids. The resulting equation is called the discretized or discretization equation. In this manner, the discretization equation expresses the conservation principle for the variable inside the control volume.

The most compelling feature of the FVM is that the resulting solution satisfies the conservation of quantities such as mass, momentum, energy, and species. This is exactly satisfied for any control volume as well as for the whole computational domain and for any number of control volumes. Even a coarse grid solution exhibits exact integral balances.

FVM is the ideal method for computing discontinuous solutions arising in compressible flows. Any discontinuity must satisfy the Rankine-Hugoniot jump condition which is a consequence of conservation. Since finite volume methods are conservative they automatically satisfy the jump conditions and hence give physically correct weak solutions.

FVM is also preferred while solving partial differential equations containing discontinuous coefficients.

Integral form of conservation law

Consider a single partial differential equation in conservation form


\frac{\partial u}{\partial t} + \nabla \cdot f(u) = 0

where u is a conserved quantity and


f(u) = [ f_1(u), \ldots, f_d(u)]

is the flux vector. Integrating this over any volume V in R^d we get the integral form of the conservation law


\frac{\partial}{\partial t} \int_V u dx + \oint_{\partial V} f_i n_i ds = 0

where the divergence theorem has been used to convert the divergence term to a surface integral over the surface \partial V and (n_1, \ldots, n_d) is the unit outward normal to \partial V. The above equation is the starting point for the finite volume method.

Finite volume formulation

The computational domain V_h is divided into non-overlapping cells or finite volumes

V_r, r=1,\ldots, N, \quad V_h = \cup_r V_r

Usually these cells are polygons (triangles, quadrilaterals) in 2-D and polyhedra (tetrahedron, hexahedron, prims, etc) in 3-D.

Introduce the cell average value over the cell V_r


u_r = \frac{1}{|V_r|} \int_{V_r} u(x) dx

which is the basic unknown quantity in the finite volume method. Let


N(r) = \{ \mbox{Set of cells which share a common face with } V_r \}

Then the integral conservation law for cell V_r is


|V_r| \frac{du_r}{dt} + \sum_{s \in N(r)} \int_{V_r \cap V_s} f_i n_i ds = 0

It now remains to approximate the flux integral. This can be achieved using gaussian quadrature. Taking p gaussian points we get


\int_{V_r \cap V_s} f_i n_i ds = \Delta s_{rs} \sum_{m=1}^p \omega_m F^m_{rs}

where \omega_m are the gaussian weights and F is an approximation to f_i n_i.

External links


Return to Numerical Methods


My wiki