Theory
The finite-volume method needs the velocity on each face, , while the solver stores it at cell centres. The options are (OpenFOAM user guide, 2026):
- upwind: the value of the upwind cell , equation (1). First order: bounded and robust, but its numerical diffusion smears jets and shear layers.
- linearUpwind: the upwind value extrapolated to the face with the cell gradient, equation (2). Second order. The gradient is
cellLimited Gauss linear 1: it is limited so that the extrapolated face values do not exceed the range of the neighbouring cell values. - limitedLinearV 1: a blend of central (linear) interpolation and upwind, controlled by a limiter of the local smoothness, equation (3). The "V" form uses one limiter for all three components, taken in the direction of the steepest change of the velocity. It is less diffusive than linearUpwind but can oscillate on a poor mesh.
Steady runs use the bounded form, equation (4). It subtracts the continuity error of the not-yet-converged fluxes, which keeps the convected quantity bounded during the iterations and vanishes at convergence. Transient and pseudo-transient runs use the plain form.
The selected scheme applies to the whole steady run, with one exception: the transonic SIMPLE and pseudo-transient compressible solvers use first-order upwind for U and energy in their start-up phase and switch at the restart (Upwind iterations before the switch). The compressible energy terms (div(phi,e), div(phi,K)) use upwind when U is upwind, otherwise linearUpwind on the limited velocity gradient.
Equations
| where | meaning | unit |
|---|---|---|
| Velocity interpolated to face f | m/s | |
| Velocity of the upwind cell | m/s | |
| Face centre, upwind cell centre | m | |
| Central (linear) interpolation between the two cells | m/s | |
| Limiter: 1 = central, 0 = upwind | - | |
| Smoothness ratio across the face, for the velocity component (or direction) | - | |
| Vector from the upwind to the downwind cell centre | m | |
| Volume (incompressible) or mass flux through the faces | m³/s, kg/s |
Default and rule
- Default
- auto: linearUpwind (limited gradient)Computed by the programMeasured
- Rule
Auto = linearUpwind for both analysis types. A typed scheme is kept; upwind gets a warning (too diffusive), and limitedLinearV gets a warning for a compressible run.
- Source
Validation results:
- On the two study mufflers the first-order upwind pressure drop was 4-10 % below the second-order result.
- On the pipe-elbow reference case (90 °C water, 5 m/s, a published pressure difference of 405 Pa between two cut planes) at 16 cells across the pipe, run to full convergence, linearUpwind gave 477 Pa (+18 %) and limitedLinearV 439 Pa (+8 %) on the same mesh. Only this one point is available, so linearUpwind remains the robust default.
For compressible flow, linearUpwind with a limited gradient is the second-order form used by the compressible tutorial of the installed OpenFOAM build (the compressible solver aerofoilNACA0012); no compressible tutorial of the build uses limitedLinearV. The limiter of equation (3) is OpenFOAM's
limitedLinearwith coefficient 1 (OpenFOAM user guide, 2026).
Valid range auto | linearUpwind | limitedLinearV | upwind
Choice
Auto (linearUpwind), linearUpwind, limitedLinearV, upwind.
Upwind
First order: robust, but 4-10 % low on the pressure drop of the study mufflers. Use it only to get a difficult case started.