Finite volume method (FVM), explained
The finite volume method is the method Simcenter STAR-CCM+, Simcenter FLOEFD and Simcenter Flotherm use to turn the flow equations into equations a computer can solve. In this guide we describe what happens inside one cell, how the values on the cell faces are calculated and which mesh types are used, and we follow a small example from 5 to 320 cells.
Guide · 20 min read · Reviewed by Christoffer Johansson · Updated October 2026

What is the finite volume method?
The finite volume method (FVM) is a numerical method that splits the flow domain into small cells, called control volumes, and writes the flow equations as a balance for each cell: what flows in through the faces, minus what flows out, plus what is produced inside, equals the change in the cell.
Since it works directly with the conservation laws of mass, momentum and energy, it suits fluid flow well. CFD Direct, the developers of OpenFOAM, call it the chosen method for many decades in the most popular general-purpose CFD codes, and Simcenter STAR-CCM+, Simcenter FLOEFD and Simcenter Flotherm all use it. If you are new to the subject, our guide to computational fluid dynamics covers what a simulation does from start to finish.
The picture at the top of the page is a small run we made for this guide. Note that we do not solve the flow itself. It is a textbook potential flow round the cylinder that we prescribe (adjusted so that the top and bottom edges are streamlines), so there is no viscosity and no wake. Our code solves how a scalar, which you can think of as dye or heat, is carried by that flow and spread by diffusion. The mesh has 1,940 polygonal cells and each cell holds one value of the scalar, which is why the colour changes in steps.
Conservation in every cell
The flow through a face is computed once and used by both cells that share it, with opposite signs. What leaves one cell therefore enters its neighbour, and nothing is lost or created between cells. If you add up all the cells, the inner faces cancel and the whole domain is in balance too, on a coarse mesh as well as on a fine one.
Cell P from the top picture is shown enlarged below, with the flow through each of its seven faces.
Conservation is not the same as accuracy, though. A coarse mesh conserves the scalar exactly as well as a fine one, but the scalar can end up in the wrong place. In the picture at the top the streak should stay about as narrow as it enters. By the right-hand edge it is about 4 times as wide and its peak has dropped from 1 to 0.37. Almost all of that comes from the first-order scheme we used. If we switch off the physical diffusion, the picture hardly changes (the peak is 0.38 instead of 0.37). Why this happens is described in the section on convection schemes below.
From the transport equation to one equation per cell
Every quantity a CFD solver transports, such as a velocity component, temperature, a species concentration or a turbulence quantity, can be written in the same general form. Terms that do not fit the pattern, such as the pressure gradient in the momentum equations, are put into the source. For a variable φ the equation reads
∂(ρφ)/∂t + ∇·(ρuφ) = ∇·(Γ∇φ) + Sφ
Change over timeConvectionDiffusionSource
Convection is φ carried by the flow, diffusion is φ spreading from high to low values with the diffusion coefficient Γ, and the source covers everything else. Finite volume discretisation integrates this equation over each cell, and the divergence theorem turns the convection and diffusion terms, exactly, into integrals over the faces of the cell. The approximation is made in the next step, where each face integral is replaced by the value at the face centre times the face area. This assumes that the variable changes linearly across the face and the cell. It caps a standard finite volume code at second order, whatever convection scheme you pick. For a second-order discretisation, Jasak calls this assumption the major source of numerical errors.
Σfaces Ff φf − Σfaces Γf Af (∂φ/∂n)f = Sφ VP
Here Ff = ρ (u·n) A is the mass flow through face f, A is the face area and VP the volume of cell P (this is the steady form, and time stepping is described further down). A cell-centred solver stores the values at the cell centres, as we describe for Simcenter FLOEFD in meshing in Simcenter FLOEFD. The face value φf and the gradient at the face therefore have to be estimated from the cells on either side, and how the face value is estimated is called the convection scheme.
The diffusion term is more straightforward. Between two cell centres P and N a distance d apart, the gradient at the face is close to (φN − φP)/d. This is accurate when the line between the centres crosses the face at right angles. On a non-orthogonal mesh the solver adds a correction, and large angles reduce the accuracy, which is one reason why mesh quality matters. Gradients inside each cell, which the higher-order schemes need, are calculated from the neighbours, either as a Gauss sum over the faces or as a least-squares fit.
Once every face is written in terms of cell values, each cell gives one linear equation that links its own value to the values of its neighbours
aP φP = Σ anb φnb + b
A mesh with 10 million cells gives 10 million such equations, each with only a handful of neighbours. Since the coefficients depend on the flow, the solver does not solve them in one go. Instead it improves the solution in iterations. In the segregated approach it solves the equations for one variable at a time and then updates the coefficients before the next loop.
- 1Split the domain into cells
Cell volumes and centroids, face areas, normals and centres, and which two cells share each face.
- 2Integrate over each cell
The divergence theorem turns convection and diffusion into integrals over the faces.
- 3Estimate the face values
A scheme (upwind, central or a higher-order one) gives them from the cell values.
- 4Assemble one equation per cell
Each cell is linked only to the cells it shares a face with.
- 5Iterate until converged
Until the residuals have fallen, the boundaries balance and the quantities you care about have stopped changing.
Convection schemes: upwind, central and higher order
The convection term needs the value of φ on each face, but the solver only knows the values in the cell centres. The two simplest schemes are upwind and central differencing. The upwind scheme takes the value of the cell the flow comes from. The central differencing scheme takes the average of the two cells (on an even mesh) and is formally more accurate.
Both schemes have drawbacks. Upwind is first-order accurate and smears out sharp changes. This is called numerical diffusion, which means that the scheme behaves as if the fluid had a larger diffusion coefficient than it has. The advantage is that upwind never gives values outside the range of its neighbours. Central differencing is second-order accurate, but when convection is strong compared with diffusion it produces wiggles, values that overshoot and undershoot from cell to cell.
The cell Péclet number
Whether central differencing works depends on the cell Péclet number, PeΔ = ρ u Δx / Γ, which compares convection with diffusion across one cell. On an even 1D mesh, central differencing stays free of wiggles as long as PeΔ is below 2. In the widget below you can change the number of cells and the flow speed. The orange dots are central differencing and the teal squares are upwind.
Exact solutionCentral differencingUpwindValues between 0 and 1
Cell Péclet number 5.00 · largest error: central 1.546, upwind 0.204 · central differencing goes outside 0 to 1
With 5 cells and u = 2.5 the cell Péclet number is 5. Central differencing then gives 1.26 in the middle cell and 2.46 in the last one, although the exact solution never leaves the range from 0 to 1. Upwind stays inside that range, but it spreads the steep drop at the outlet over two cells. With 20 cells the cell Péclet number is 1.25 and the wiggles are gone.
On this mesh the numerical diffusion of upwind can be put in a number. Upwind gives the same cell values, to within 0.0001, as central differencing would with the diffusion coefficient raised by ρuΔx/2 (the small difference comes from the inlet boundary face). With 5 cells and u = 2.5 that adds 0.25 to Γ = 0.1, so upwind solves a problem with 3.5 times the real diffusion. This also brings the effective cell Péclet number down from 5 to 1.4, and with that coefficient it stays below 2 however coarse the mesh is, which is why upwind never wiggles.
Higher-order and bounded schemes
Production codes use schemes that sit between the two. Second-order upwind starts from the value in the upwind cell and adds the gradient in that cell times the distance to the face, which makes it second order with an upwind bias. Close to steep changes a limiter scales the gradient down, so that the face value stays within, or very close to, the range of the neighbouring cells. A strict limiter keeps it exactly in range, but in our runs it stopped the iteration from converging, so for the figure below we used a smoother one that allows small overshoots. The idea goes back to van Leer’s papers of the 1970s and to the total variation diminishing (TVD) schemes that followed. A scheme that is both bounded and better than first order has to depend on the solution itself, and that is what the limiter does.
The figure below repeats the run from the top of the page and adds the same run with a limited second-order upwind scheme, where the streak stays narrow behind the cylinder.

The QUICK scheme
QUICK comes from Leonard’s 1979 paper on quadratic upstream interpolation. It takes the face value from a quadratic curve through two upstream cells and one downstream cell. Like linear upwinding it is biased in the flow direction and gives less numerical diffusion than first-order upwind, but it is not bounded, so it can overshoot next to steep changes.
In scale-resolving simulations such as LES, numerical diffusion would damp the eddies you are trying to resolve. Siemens points to the higher-order, less dissipative schemes in Simcenter STAR-CCM+ for LES of combustion. When we compared SIMPLE and SIMPLEC in a qDNS case, we used its bounded second-order central-differencing scheme together with second-order implicit time stepping. For the free surface in VOF simulations, special interface-capturing schemes keep the interface sharp, and two of them are compared in our post HRIC vs MHRIC.
First-order upwind is often used to get a difficult case started. Switch to a second-order scheme before you take numbers from the result.
If you want to go through this hands-on, ask us about our training courses.
A worked example in 1D
Worked example · recomputed and extended by Volupe
The widget above solves a case many engineers know from Versteeg and Malalasekera’s textbook An Introduction to Computational Fluid Dynamics, where convection and diffusion act against each other. A bar of length 1 has φ = 1 at the left end and φ = 0 at the right end, a constant flow speed u from left to right, density 1 and diffusion coefficient Γ = 0.1. The cells are of equal size, and the boundary values sit on the outer faces, half a cell from the first and last cell centres. We recomputed it with our own code and then added two things, a refinement study from 10 to 320 cells and the widget that runs the same solver in your browser.
| x | Exact | Central | Upwind |
|---|---|---|---|
| 0.1 | 1.000 | 1.036 | 1.000 |
| 0.3 | 1.000 | 0.869 | 0.999 |
| 0.5 | 1.000 | 1.257 | 0.992 |
| 0.7 | 0.999 | 0.352 | 0.952 |
| 0.9 | 0.918 | 2.464 | 0.714 |
Then we refined the mesh, doubling the number of cells from 10 to 320 at the same flow speed, and recorded the largest error at the cell centres in each run.
Each time the cells are doubled, the central differencing error falls by a factor that approaches 4 (3.35 for the first doubling, 3.95 for the last) and the upwind error by a factor that approaches 2. Between the last two meshes the observed order is 1.98 for central differencing and 0.93 for upwind, close to the theoretical 2 and 1.
One thing worth mentioning is that with 20 cells upwind still has the smaller largest error (0.120 against 0.160), and central differencing only pulls ahead from 40 cells. This means that the order only tells you how fast the error falls when you refine the mesh. On a coarse mesh a first-order scheme can still be closer to the exact solution, as it is here with 20 cells.
The same procedure is used to check a real simulation. You run it on three meshes and estimate the observed order and the remaining error, which our grid convergence index calculator does from three results. A real study has no exact solution, only results, so we tried that here as well. Taking the mean value of φ from 10, 20 and 40 cells gives an observed order of 2.00 for central differencing but only 0.22 for upwind, and the upwind order only reaches 0.85 with 80, 160 and 320 cells. There the estimate holds, with a GCI of 0.23% against a true error of 0.16%. An observed order far below the theoretical one usually means that the meshes are not yet fine enough, and the error estimate from them should not be trusted. The reverse is not guaranteed. The 2.00 for central differencing includes the 10-cell run, whose cell values still wiggle above 1, so check the quantity you need and look at the field as well.
Meshes for finite volumes
The finite volume method does not depend much on the shape of a cell. It needs the volume and centroid of each cell, the area, normal and centre of each face, and which two cells share each face. This is why the method works on unstructured meshes of arbitrary polyhedral cells, and why the mesh types in a modern CFD code look so different from each other.
Polyhedral mesh
Siemens describes the polyhedral mesher in Simcenter STAR-CCM+ as the unstructured, general-purpose mesher for complex geometry, and points out that it keeps the mesh conformal between parts, which helps conjugate heat transfer cases where heat crosses from fluid to solid. Siemens, and CD-adapco before it, also describes polyhedral meshes as fast to converge, easy to generate and more efficient than tetrahedral meshes. We have not seen public numbers behind that, so read it as Siemens’ own description.
Here is the same bent pipe meshed with both meshers.

Trimmed cell mesher

Polyhedral mesher
Trimmed cells
The trimmed cell mesher builds a predominantly hexahedral mesh and cuts the cells where they meet the geometry. Numerical diffusion is smallest when the flow runs along the cell faces. With mesh alignment you can move the reference point of the trimmed mesh, so that the cells line up with a corner or with the neighbouring part, as we show in mesh alignment for the trimmed cell mesher. For geometry that a mesh can be swept through, such as a pipe, there is also the directed mesher.
Prism layers near walls
Next to walls the velocity changes fast over a short distance. Both meshers therefore add prism layers, thin cells stacked along the wall, to resolve the boundary layer. How thin the first one should be depends on the wall treatment and the y+ you aim for, which our y+ calculator works out. For thin solids such as sheet metal there is also a thin mesher, described in our post on thin structures.
Simcenter FLOEFD and Simcenter Flotherm use Cartesian meshes instead. Simcenter FLOEFD cuts its Cartesian cells with the CAD geometry (an immersed-boundary, cut-cell grid) and handles the boundary layer in the cut cells with its own two-scale wall treatment, so you do not have to build a body-fitted mesh.
Boundary conditions, pressure and convergence
Boundary conditions
A cell next to the edge of the domain has one or more boundary faces, and the boundary condition decides the flux through them. At an inlet you usually give a velocity or a flow rate, at an outlet a pressure, and a symmetry plane has no flux through it. At a wall there is no flow through the wall and no slip along it, and the energy equation gets a temperature or a heat flux. In our 1D example the value at each end sits on the outer face, half a cell from the first cell centre, and the diffusion through that face is computed over that half cell.
Pressure and velocity
In incompressible flow there is no equation of its own for pressure, and the pressure is whatever makes the velocity field satisfy continuity. The SIMPLE algorithm of Patankar and Spalding from 1972 handles this by starting from a pressure, solving the momentum equations and then correcting pressure and velocity until mass is conserved in every cell, with under-relaxation to keep the corrections stable. Storing pressure and velocity at the same cell centres, as unstructured codes do, needs a special interpolation of the face mass flux, usually named after Rhie and Chow (1983).
- 1Start from a pressure field
The pressure from the last iteration, or a first guess.
- 2Solve the momentum equations
This gives velocities that do not yet conserve mass.
- 3Compute the face mass fluxes
With the Rhie–Chow interpolation.
- 4Solve a pressure-correction equation
It is built from continuity, so that the corrected fluxes conserve mass in every cell.
- 5Correct pressure, velocities and fluxes
The pressure correction is under-relaxed. Then solve the other equations and repeat.
Simcenter STAR-CCM+ has two flow solvers. The segregated solver is the pressure-correction method described above. It also offers SIMPLEC for implicit unsteady runs, which Siemens describes as needing no under-relaxation of the pressure correction and fewer inner iterations per time step, and we compare the two in our post SIMPLE vs SIMPLEC. The coupled solver solves continuity, momentum and energy as one system. Siemens describes it as density-based, as best practice for applications such as external aerodynamics and turbomachinery, and as reaching deeper residual convergence for steady flows.
Time-accurate runs
For unsteady flow the change-over-time term is integrated as well, usually with an implicit scheme of first or second order in time, and the solver iterates within each time step before it moves on. How far the flow moves in one time step, measured in cells by the Courant number, matters especially for LES and for VOF, where interface-capturing schemes such as HRIC use it directly. For a conjugate heat transfer case we went through time-step selection step by step.
Convergence
Residuals show how far the current solution is from satisfying the discrete equations, and they should fall by several orders of magnitude, but how far is enough depends on the case (see residuals in Simcenter STAR-CCM+). A low residual is not enough on its own, though. Watch the quantities you care about until they stop changing, and check that what flows in through the boundaries flows out again. Before convergence the face fluxes still cancel between cells, but the cell balances are not yet zero, so mass is not yet conserved. At convergence the whole domain is in balance.
The figure below shows what the residual and a monitored value do when the equations of the run at the top are solved with a very simple iterative method.
A converged run still has to pass the mesh check, as in the three-mesh study above, and then be compared with measurements.
Finite volume vs finite element and finite difference
The finite volume method balances fluxes through the faces of each cell and stores one value per cell. The finite element method writes the equation in weak form and interpolates between nodes with shape functions. The finite difference method writes the differential equations as relations between values at grid points.
| Finite differences (FDM) | Finite elements (FEM) | Finite volumes (FVM) | |
|---|---|---|---|
| What is stored | Values at grid points | Values at nodes, with shape functions in between | One value per cell (in the cell-centred form) |
| Starting point | Relations between values at neighbouring grid points | The equation in weak (integral) form, weighted with test functions, conservative only in an average sense | The conservation law integrated over each cell, so every cell is in balance |
| Element or cell shapes | A grid of points | Standard shapes (triangles, quadrilaterals, tetrahedra, hexahedra) | Any polyhedron |
| Typical use | Codes on simple, regular grids (on such grids simple finite volume schemes reduce to finite differences) | Structures, vibration, heat conduction | Fluid flow and heat transfer (CFD) |
In practice the finite element method is the de facto standard in structural analysis, and the finite volume method is the established method in CFD. One reason is that a flow solver has to conserve mass, momentum and energy through every face, and the finite volume method does that by construction. In solid mechanics, where the two have been compared on the same problems, most authors found similar answers, so the choice between them is more about the formulation and conservation than about accuracy. Our guide to finite element analysis covers the structural side.
Simcenter STAR-CCM+ itself also solves solid stress with finite elements next to its finite volume flow solver, which is useful for fluid–structure interaction.
Simcenter tools that use the finite volume method
History of the method
- 1969
The method is usually dated to the early 1970s, but Akshai Runchal’s PhD thesis, under Brian Spalding, already describes a method that is clearly finite volume. Runchal credits the idea to Spalding’s 1967 picture of tanks connected by tubes.
- 1972
Patankar and Spalding publish the SIMPLE procedure for coupling pressure and velocity.
- 1981
Patankar’s book Numerical Heat Transfer and Fluid Flow sets out the method for engineers.
- 1983
Rhie and Chow publish the interpolation that lets all variables share the same cell centres. David Gosman’s unstructured methods were later inspired by it.
- 1987
Gosman and Raad Issa of Imperial College found Computational Dynamics to develop STAR-CD, later part of CD-adapco.
- 2016
Siemens announces the acquisition of CD-adapco, whose flagship product STAR-CCM+ is now Simcenter STAR-CCM+.
Three of the Simcenter tools we work with use the finite volume method.
- Simcenter STAR-CCM+
General-purpose CFD with polyhedral, trimmed and thin meshers and segregated and coupled flow solvers.
Book a demo → - Simcenter FLOEFD
CFD inside the CAD system, on a Cartesian cut-cell mesh that needs no body-fitted meshing.
Ask an engineer → - Simcenter Flotherm
Electronics cooling on a structured Cartesian grid.
Ask an engineer →
Sources and changelog
Sources
All 40 sources
Siemens: Simcenter STAR-CCM+, STAR-CCM+ meshing solutions fact sheet (PDF), Simcenter FLOEFD, Simcenter Flotherm, CFD simulation, FEA vs CFD; Simcenter blog: SIMPLEC, coupled solver, reacting flows, STAR-CCM+ 2022.1, Simcenter FLOEFD for design engineers; Simulating the Real World blog: the art of modelling using CFD: grid (2010); NIAR case study; press release on CD-adapco (2016, PDF); former CD-adapco pages on polyhedral mesh generation and David Gosman (Internet Archive copies).
Open texts: C. J. Greenshields and H. G. Weller, Notes on CFD: general principles (CFD Direct), in particular the finite volume concept, advection discretisation, upwind scheme, linear upwind, TVD schemes, gradients, pressure–velocity coupling, walls; H. Jasak, Error analysis and estimation for the finite volume method (PhD thesis, Imperial College, 1996); NIST FiPy documentation on the finite volume method and numerical schemes; P. Cardiff and I. Demirdžić, Thirty years of the finite volume method for solid mechanics; NASA NPARC, Examining spatial (grid) convergence.
Papers and books: S. V. Patankar and D. B. Spalding, SIMPLE (1972); B. P. Leonard, QUICK (1979); B. van Leer (1974, 1979); C. M. Rhie and W. L. Chow (1983); P. K. Sweby (1984); P. J. Roache, GCI (1994); S. V. Patankar, Numerical Heat Transfer and Fluid Flow; J. H. Ferziger, M. Perić and R. L. Street, Computational Methods for Fluid Dynamics; F. Moukalled, L. Mangani and M. Darwish, The Finite Volume Method in Computational Fluid Dynamics; H. K. Versteeg and W. Malalasekera, An Introduction to Computational Fluid Dynamics: The Finite Volume Method (2nd ed., Pearson, 2007), the textbook our 1D case is taken from.
Our computations: the 1D example, its refinement study and the widget use one finite volume code (upwind and central differencing, boundary values on the outer faces); the 2D runs solve the transport of a scalar in a prescribed potential flow on a 1,940-cell Voronoi mesh, with first-order and limited second-order upwind (least-squares gradients, Venkatakrishnan limiter), plus a Jacobi iteration for the residual figure. Image of the pipe meshes: Volupe.
Changelog
October 2026: first version, written from Siemens pages and fact sheets, the open texts listed above (CFD Direct’s Notes on CFD, Jasak’s thesis, the NIST FiPy documentation, the Cardiff and Demirdžić review and the NASA grid convergence pages), the Volupe posts linked on the page, and our own runs of a 1D and a 2D finite volume code. The papers and books are listed for reference.
More on CFD from Volupe
All Simcenter STAR-CCM+ articlesCFD
what a simulation does, step by step
FEA
the structural counterpart
GCI
observed order from three meshes
y+
first prism layer height
Trimmed mesh
line up cells at part interfaces
VOF
schemes for a sharp interface
Questions about the finite volume method
Simcenter STAR-CCM+ and Simcenter FLOEFD
Christoffer Johansson
Senior Application Specialist, M.Sc.
Choose “Technical question” in the form below and describe your case.
Ask a technical question →
What is the finite volume method in simple terms?
A numerical method that splits the domain into small cells and keeps a balance for each one. What flows in through the faces, minus what flows out, plus any source inside, equals the change in the cell. The solution is one value per cell for each quantity.
Why is the finite volume method used in CFD?
Because, once converged, it conserves mass, momentum and energy exactly in every cell, whatever the mesh, and because it works on unstructured meshes of any cell shape, which suits complex geometry.
What is the difference between the finite volume and the finite element method?
The finite volume method integrates the conservation law over each cell and balances fluxes through the faces. The finite element method writes the equation in weak form and approximates the solution with shape functions between nodes. FEM is the de facto standard in structural analysis, and FVM is the established method in CFD.
What is the difference between the finite difference and the finite volume method?
The finite difference method writes the equations as relations between values at grid points. The finite volume method balances fluxes through the faces of cells, which keeps it conservative and lets it work on unstructured meshes.
What is a control volume?
A small region of the flow, in practice one mesh cell, over which the conservation laws are applied. Its faces are where the fluxes are computed.
Should I use upwind or central differencing?
Usually neither on its own. First-order upwind is stable but smears the solution, and central differencing can oscillate when the cell Péclet number is above 2. A limited second-order upwind scheme is a common choice for steady runs, and in a quasi-DNS case we have used the bounded central-differencing scheme in Simcenter STAR-CCM+.
What is numerical diffusion?
Smearing of sharp gradients caused by the discretisation itself, most of all by first-order upwind on a coarse mesh or on cells that are not aligned with the flow. It acts like extra diffusion that the real fluid does not have, and finer cells and higher-order schemes reduce it.
What is the QUICK scheme?
A convection scheme from Leonard’s 1979 paper on quadratic upstream interpolation. It takes the face value from a quadratic through two upstream cells and one downstream cell. It gives less numerical diffusion than first-order upwind, but it is not bounded and can overshoot next to steep gradients.
Which Simcenter software uses the finite volume method?
Simcenter STAR-CCM+, Simcenter FLOEFD and Simcenter Flotherm. Simcenter STAR-CCM+ adds polyhedral and trimmed meshers and a finite element solver for solid stress. You can book a demo with one of our engineers.
Talk to an engineer in your region
Every Volupe business developer holds an engineering degree. Find your regional contact below, or send us a message.
Ask us about FVM (finite volume method)
Use this form for licence quotes, demos, training and technical questions.
What happens next
- A reply within one day.
- A scoping call with one of our engineers.
- A quote, demo or other next step that fits your enquiry.
After purchase: support from Volupe simulation engineers.