TRANSIENT CFD / NUMERICAL METHODS

What does Courant number mean in CFD?

Courant number connects time step, local transport speed and cell size. It is both a numerical stability concept and a practical measure of how far information moves through the mesh during one step.

SHORT ANSWER

Courant number measures transport per time step relative to the local cell scale. In a one-dimensional engineering estimate, Co = UΔt/Δx. A value of 0.5 means a feature travelling at U moves about half a cell during one time step. Real finite-volume codes may define a cell Courant number from face fluxes rather than this simplified one-dimensional expression.

01

The simplest way to understand Co

Co = U Δt / Δx
U — relevant transport speedΔt — time stepΔx — local cell scale

If UΔt is the distance travelled during one time step, dividing by Δx expresses that travel in units of local cells. This makes the Courant number a natural bridge between mesh resolution and temporal resolution.

OpenFOAM's `CourantNo` function object describes Co as a measure of the rate at which information is transported by a flux field and computes a cell field from local face fluxes and cell volume. That is more representative of a finite-volume mesh than one global U and Δx.

02

The dangerous Courant number is usually local

A global estimate based on inlet velocity and average cell size can look acceptable while a tiny cell near a sharp edge, gap, prism transition or moving interface experiences a much higher local Co.

Small cells

Halving Δx doubles Co at the same U and Δt.

Accelerating flow

A jet, nozzle or tip-gap velocity can exceed the nominal inlet speed substantially.

Moving interfaces

Sliding, overset or deforming meshes may introduce additional motion-related resolution constraints.

Multiphase interfaces

VOF/free-surface problems often require careful local spatial and temporal resolution even when the solver remains numerically stable.

For this reason, a useful workflow checks the maximum or high-percentile local Courant field in addition to a pre-processing estimate.

03

Does Courant number have to stay below 1?

No universal rule applies to every CFD algorithm. The CFL condition is a stability requirement for particular numerical discretizations. Many explicit time-integration schemes have strict Courant-type limits. Implicit formulations can often remain stable at larger Co values, but that does not mean the transient solution is adequately resolved.

Do not confuse “the solver did not diverge” with “the timestep is good.”

An implicit simulation may run at Co > 1 while smearing or phase-shifting a fast transient. Stability and temporal accuracy are separate questions.

The correct acceptable Co depends on the governing equations, spatial discretization, time integration, coupling strategy, mesh, and what physical frequencies or interfaces you need to resolve.

04

Temporal accuracy needs its own evidence

Suppose a simulation is stable at Δt = 0.01 s. That alone does not prove the result is time-step independent. Repeat a representative portion of the simulation with a smaller time step and compare engineering quantities such as:

  • force or moment amplitude and phase,
  • pressure-drop history,
  • temperature peaks and thermal lag,
  • free-surface height or interface position,
  • mass-flow oscillation,
  • rotating-load harmonics or blade-passing behavior.

If those quantities change materially, the original step is too large for the required temporal fidelity regardless of solver stability.

05

Compressible and wave problems need the relevant signal speed

For pure advection, U is a useful characteristic speed. In compressible flow, information can propagate through acoustic waves as well as bulk convection. A practical CFL estimate may therefore involve a characteristic speed such as |U| + a, where a is the local speed of sound, depending on the numerical method.

The Abecator Courant calculator includes an optional additional signal-speed term for this reason. It is intentionally labelled as an estimate because solver-specific compressible CFL definitions can differ.

Need speed of sound?

Use the ideal-gas Mach calculator to estimate a = √(γRT) before building a signal-speed timestep estimate.

Mach Calculator →
06

A practical transient time-step workflow

  1. Identify the fastest important transport or signal speed.

    Use local jets, rotating tips or acoustic speed when they are more restrictive than the inlet velocity.

  2. Identify the smallest relevant cell scale.

    Do not let one accidental tiny cell silently dictate the entire simulation; fix pathological mesh cells where possible.

  3. Choose a starting target Co.

    Use the solver/model requirements and the physics you need to resolve—not a universal number copied from another case.

  4. Estimate Δt.

    For the simplified relation, Δt = Co·Δx/U.

  5. Run and inspect the local Co field.

    Check where the maximum occurs and whether it is a meaningful flow region or a mesh defect.

  6. Perform a timestep sensitivity study.

    Compare the engineering outputs that matter, not just residual histories.

Calculate Co or Δt

Switch between “find timestep” and “check Courant number,” with optional signal speed.

Open Courant Tool →
07

Common mistakes

  • Using average cell size instead of the local restrictive scale.
  • Using inlet velocity when the flow accelerates strongly elsewhere.
  • Assuming Co < 1 guarantees accuracy.
  • Assuming an implicit method makes timestep sensitivity unnecessary.
  • Reducing Δt to compensate for one bad mesh cell rather than repairing the mesh.
  • Ignoring acoustic or interface-propagation speed in relevant problems.
  • Comparing residuals only instead of transient engineering outputs.

Primary references

TOPIC CLUSTER · CONVERGENCE & TROUBLESHOOTING

Continue within the same engineering problem.

This article is part of Abecator's Convergence & troubleshooting topic cluster. Use the hub to move between fundamentals, diagnostics, engineering calculations and complete workflows.

AI Assistance
Contact
TGTelegram