Linear solver definition

Generated from SU2 commit 6b54b78464 on 2026-10-23. Do not edit this page. Edit the comment above the option in Common/src/CConfig.cpp instead.

LINEAR_SOLVER

  • Linear solver for the implicit, mesh deformation, or discrete adjoint systems

More in config_template.cfg: Linear solver or smoother for implicit formulations: BCGSTAB, FGMRES, FGCRODR, RESTARTED_FGMRES, CONJUGATE_GRADIENT (self-adjoint problems only), SMOOTHER.

LINEAR_SOLVER_PREC

  • Preconditioner for the Krylov linear solvers

More in config_template.cfg: Preconditioner of the Krylov linear solver or type of smoother (ILU, LU_SGS, Q_LU_SGS, LINELET, JACOBI, Q_JACOBI) Q_LU_SGS and Q_JACOBI trigger the use of quantization to reduce the size of the sparse matrix (for compressible flow the matrix becomes 3x smaller relative to mixed-precision mode). Q_IDENTITY requests the same quantized matrix-vector product without any actual preconditioning (equivalent to NONE otherwise). This is only used by the compressible and incompressible solvers, others fallback silently to LU_SGS/JACOBI/NONE. A suitable nondimensionalization mode MUST be used otherwise the solver is very likely to diverge.

LINEAR_SOLVER_ERROR

Minimum error threshold for the linear solver for the implicit formulation

More in config_template.cfg: Minimum error of the linear solver for implicit formulations

LINEAR_SOLVER_ITER

Maximum number of iterations of the linear solver for the implicit formulation

More in config_template.cfg: Max number of iterations of the linear solver for the implicit formulation

POISSON_LINEAR_SOLVER

  • Linear solver for the poisson system

More in config_template.cfg: Linear solver for poisson equation (same options as LINEAR_SOLVER)

  • Type: one of the values below
  • Values: CONJUGATE_GRADIENT, BCGSTAB, FGMRES, RESTARTED_FGMRES, FGCRODR, SMOOTHER, PASTIX_LDLT, PASTIX_LU
  • Default: FGMRES
  • In config_template.cfg: POISSON_LINEAR_SOLVER= FGMRES
  • Used in 11 test case files, for example: incomp_pb_NACA0012.cfg (FGMRES)
  • Code: CConfig.cpp line 1992

POISSON_LINEAR_SOLVER_PREC

  • Preconditioner for the Krylov linear solvers

More in config_template.cfg: Preconditioner of the poisson linear solver (same options as LINEAR_SOLVER_PREC)

  • Type: one of the values below
  • Values: NONE, IDENTITY, JACOBI, LU_SGS, LINELET, ILU, Q_LU_SGS, Q_JACOBI, Q_IDENTITY, PASTIX_ILU, PASTIX_LU, PASTIX_LDLT
  • Default: ILU
  • In config_template.cfg: POISSON_LINEAR_SOLVER_PREC= ILU
  • Used in 11 test case files, for example: incomp_pb_NACA0012.cfg (LU_SGS), pb_lam_bend.cfg (ILU)
  • Code: CConfig.cpp line 1995

POISSON_LINEAR_SOLVER_ERROR

Minimum error threshold for the poisson linear solver

More in config_template.cfg: Minimum error of the linear solver for poisson eq.

POISSON_LINEAR_SOLVER_ITER

Maximum number of iterations of the poisson linear solver

More in config_template.cfg: Max. Number of iterations for the poisson linear solver

LINEAR_SOLVER_ILU_FILL_IN

Fill in level for the ILU preconditioner

More in config_template.cfg: Linear solver ILU preconditioner fill-in level (0 by default)

LINEAR_SOLVER_ILU_LEVEL_SCHEDULING

Use level scheduling for OMP parallelization of the ILU preconditioner

More in config_template.cfg: Use level-scheduling instead of block decomposition for the ILU preconditioner. This is useful for stiff problems as it keeps the effectiveness of the preconditioner independent of the number of threads, at the expense of some parallelism (the amount of work that can be shared by the threads is reduced). This defaults to YES for elasticity problems.

LINEAR_SOLVER_ILU_GPU_SWEEPS

Number of colored Gauss-Seidel sweeps used to build the GPU ILU factorization

More in config_template.cfg: Number of colored Gauss-Seidel sweeps used to build the GPU ILU factorization (default 2). It is not reset between calls, so with the matrix changing little between outer/pseudo-time iterations, each call refines the previous one’s result instead of reconverging from scratch; for cases that do few outer iterations (e.g. elasticity problems) it may be useful to increase it up to 5.

  • Type: integer
  • Default: 2
  • In config_template.cfg: LINEAR_SOLVER_ILU_GPU_SWEEPS= 2
  • Code: CConfig.cpp line 2005

LINEAR_SOLVER_RESTART_FREQUENCY

Maximum number of iterations of the linear solver for the implicit formulation

More in config_template.cfg: Restart frequency for RESTARTED_FGMRES and FGCRODR

LINEAR_SOLVER_RESTART_DEFLATION

Number of vectors used for deflated restarts

More in config_template.cfg: Number of vectors used by FGCRODR for deflation

LINEAR_SOLVER_SMOOTHER_RELAXATION

Relaxation factor for iterative linear smoothers (SMOOTHER_ILU/JACOBI/LU-SGS/LINELET)

More in config_template.cfg: Relaxation factor for smoother-type solvers (LINEAR_SOLVER= SMOOTHER)

LINEAR_SOLVER_PREC_THREADS

Custom number of threads used for additive domain decomposition for ILU and LU_SGS (0 is “auto”).

More in config_template.cfg: Independent “threads per MPI rank” setting for LU-SGS and ILU preconditioners. For problems where time is spend mostly in the solution of linear systems (e.g. elasticity, very high CFL central schemes), AND, if the memory bandwidth of the machine is saturated (4 or more cores per memory channel) better performance (via a reduction in linear iterations) may be possible by using a smaller value than that defined by the system or in the call to SU2_CFD (via the -t/–threads option). The default (0) means “same number of threads as for all else”.

  • Type: integer
  • Default: 0
  • In config_template.cfg: LINEAR_SOLVER_PREC_THREADS= 0
  • Code: CConfig.cpp line 2013

LINEAR_SOLVER_INNER

Use an inner linear solver.

More in config_template.cfg: Inner solver used for nested preconditioning (BCGSTAB is only possible with flexible linear solvers). Options: NONE, BCGSTAB, SMOOTHER Inner BCGSTAB does up to the number of iterations of the outer solver or sqrt(LINEAR_SOLVER_ERROR). Inner SMOOTHER does max(2, sqrt(LINEAR_SOLVER_ITER))

RELAXATION_FACTOR_PRESSURE

Relaxation of the pressure corrections for the SIMPLE algorithm

More in config_template.cfg: The relaxation factor for the pressure correction (default = 1.0)

TRANSIENT_TERM_REMOVAL_FACTOR

Removal factor for the transient term in the momentum coefficients for the poisson solver.

More in config_template.cfg: Heuristic parameter influencing the effect of the pseudo time derivative in the momentum coefficients for the pressure correction equation (float [0,1], default=0.0)

USE_AUTOMATIC_RELAXATION_FACTORS

\DESCRIPTION: Automatically compute relaxation factors for flow corrections in the SIMPLE algorithm

More in config_template.cfg: Decide if automatic relaxation factors for pressure and momentum should be used or not. If set to NO, the value from RELAXATION_FACTOR_PRESSURE is used. default NO

PISO_CORRECTIONS

Number of corrections in the PISO algorithm (pressure based).

More in config_template.cfg: Number of pressure corrections in the SIMPLE algorithm. >1 leads to the PISO algorithm. (default = 1 = SIMPLE)

RELAXATION_FACTOR_ADJOINT

Relaxation factor for updates of adjoint variables.

More in config_template.cfg: Relaxation coefficient (also for discrete adjoint problems)

RELAXATION_FACTOR_CHT

Relaxation of the CHT coupling

MSW_ALPHA

MSW alpha coefficient

More in config_template.cfg: MSW coefficient for blending states based on pressure jump. Using 0 makes the scheme average left and right regardless of pressure.

ROE_KAPPA

Roe coefficient

More in config_template.cfg: Roe dissipation coefficient

LOW_MACH_PREC

Roe-Turkel preconditioning for low Mach number flows

More in config_template.cfg: Roe-Turkel preconditioning for low Mach number flows (NO, YES)

LOW_MACH_CORR

Post-reconstruction correction for low Mach number flows

More in config_template.cfg: Post-reconstruction correction for low Mach number flows (NO, YES)

MIN_ROE_TURKEL_PREC

Minimum value for beta for the Roe-Turkel preconditioner

MAX_ROE_TURKEL_PREC

Maximum value for beta for the Roe-Turkel preconditioner

ENTROPY_FIX_COEFF

Entropy fix factor

More in config_template.cfg: Entropy fix coefficient (0.0 implies no entropy fixing, 1.0 implies scalar artificial dissipation)

DISCADJ_LIN_SOLVER

Linear solver for the discete adjoint systems

More in config_template.cfg: Same for discrete adjoint (smoothers not supported), replaces LINEAR_SOLVER in SU2_*_AD codes.

DISCADJ_LIN_PREC

Preconditioner for the discrete adjoint Krylov linear solvers

More in config_template.cfg: Same for discrete adjoint (JACOBI or ILU), replaces LINEAR_SOLVER_PREC in SU2_*_AD codes.

MAX_UPDATE_FLOW

Maximum update ratio value for flow density and energy variables

More in config_template.cfg: Maximum ratio for updating density and energy variables evaluated by the linear solver relative to the non-linear solution at previous iteration. Low values ensure stability but may result in longer convergence times, based on numerical experiments Default= 0.2

MAX_UPDATE_SA

Maximum update ratio value for SA turbulence variable nu_tilde

More in config_template.cfg: Same as MAX_UPDATE_FLOW but for updating nu_tilde variable in SA model, not applicable for Neg model (Default= 0.99)

MAX_UPDATE_SST

Maximum update ratio value for SST turbulence variables TKE and Omega

More in config_template.cfg: Same as MAX_UPDATE_FLOW but for updating TKE and Omega variables in SST model (Default= 1.0)



Improve this page