Numerical methods
July 28, 2026

Numerical methods

Discretizations

code_saturne is based on a co-located Finite Volume approach that handles unstructured meshes with any type of cell:

  • tetrahedral;
  • hexahedral;
  • prismatic;
  • pyramidal;
  • polyhedral;
  • etc.

It can solve flows in pseudo-steady or unsteady mode. It uses a theta scheme for time discretization.

Velocity-pressure coupling

code_saturne uses a fractional-step method similar to SIMPLEC:

  1. Velocity prediction: solve the momentum equation using an explicit pressure gradient to obtain a predicted velocity.
  2. Pressure correction: use the continuity equation to enforce mass conservation.
  3. Velocity update: update the velocity field using $\nabla P$.

After the velocity has been updated, the turbulent variables and scalars are solved according to their respective time schemes.

Rhie & Chow interpolation is used when solving the pressure equation to avoid oscillations, also known as checkerboarding.

Linear system resolution

Several linear system solvers are available:

  • Gauss-Seidel
    • Default for velocity, temperature, turbulent variables, and passive scalars.
  • Jacobi
  • Conjugate gradient
    • Default for pressure.
    • Available with:
      • algebraic multigrid preconditioning;
      • Jacobi preconditioning;
      • polynomial preconditioning.
  • Algebraic multigrid
  • Stabilized bi-conjugate gradient
    • Bi-CGSTAB;
    • Bi-CGSTAB2.
  • GMRES
  • GCR
  • Solvers provided by external libraries
    • PETSc;
    • AmgX.

Convective schemes

Several schemes are available for the discretization of convective terms:

  • first-order upwind scheme;
  • centered scheme;
  • Second-Order Linear Upwind (SOLU) scheme;
  • blended scheme combining the upwind and second-order schemes.

A slope test is activated by default for second-order schemes. In case of overshoots, it switches the discretization from the second-order scheme to the upwind scheme.

Gradient calculation

Several gradient-calculation methods are available:

  • Green-Gauss method with iterative reconstruction of non-orthogonalities:
    • initialization using zero values;
    • initialization based on the least-squares method.
  • Least-squares method using:
    • a standard neighborhood;
    • an extended neighborhood;
    • a partially extended neighborhood.
  • Green-Gauss method with a least-squares-based estimation of face values.

Example test case: cross-flow in a tube bundle

  • mesh with repeatable pattern for weak scaling benchmarks
  • tested on 12 million to 3.2 billion variant
Barcouda 0
Hpc Les Tube Bundles 0