Back to Input Deck Cards

LINEAR_SOLVER

Specifies linear solver type and parameters associated with convergence.

Required Cards:

LINEAR_SOLVER

Opens the linear solver block.

Default solver is Bi-CGStab with block Jacobi preconditioning and ILU[0] in each block.

Optional Cards:

Note: See the PETSc users manual for a more definitive explanation of the ATOL, RTOL, and DTOL solver tolerances below.

ATOL <float>

Declare convergence when the 2-norm of residual is less than ATOL \(\left(\|b-A x_n)\|<\text{ATOL}\right)\). (default: \(10^{-50}\)).

DTOL <float>

Declare divergence when the 2-norm of the residual is greater than DTOL times the 2-norm of the initial residual \(\left(\frac{\|b-A x_n\|}{\|b-A x_0\|}>\text{DTOL}\right)\). (default: \(10^{4}\)).

LU_ZERO_PIVOT_TOL <float>

Specifies zero pivot tolerance for ILU/LU preconditioners.

MAXIMUM_NUMBER_OF_ITERATIONS <int>

Maximum number of linear solver iterations.

PRECONDITIONER <string>

Specifies preconditioner type, where options include: NONE, ILU, LU, BJACOBI, ADDITIVE_SCHWARZ or ASM, HYPRE, CPR. Interchangeable with PC_TYPE (from PETSc).

RTOL <float>

Declare convergence when the 2-norm of the residual is less than RTOL times the 2-norm of the initial residual \(\left(\frac{\|b-A x_n\|}{\|b-A x_0\|}<\text{RTOL}\right)\). (default: \(10^{-5}\)).

SOLVER <string>

Specifies solver type, where options include: DIRECT, ITERATIVE, GMRES, BCGS, IBCGS. Interchangeable with KSP_TYPE (from PETSc). DIRECT uses LU and ITERATIVE employs Bi-CGStab (BCGS) and block Jacobi preconditioning with ILU[0] in each block.

STOP_ON_FAILURE

Forces the simulation to stop when the linear solver fails to converge.

Expert Level

CPR_OPTIONS

When using the Constrained Pressure Residual Preconditioner (PRECONDITIONER CPR), multiple options can be set. SOLVER FGMRES and MAXIMUM_NUMBER_OF_ITERATION 1000 are highly recommended.

CPR_TYPE <string>

COMBINATIVE is a two-stage preconditioner where Algebraic Multigrid (AMG) is applied to decoupled pressure block of the Jacobian matrix, and Block-Jacobi ILU(0) is applied globally as the second stage. ADDITIVE is a three-stage preconditioner where AMG is applied to the saturation block of the Jacobian matrix in addition to COMBINATIVE method. Default = COMBINATIVE.

CPR_EXTRACTION_TYPE <string>

Defines the approach to decoupling the block matrix. There are two main methods: alternate-block-factorization(ABF) and quasi-implicit-pressure-explicit-saturation (QIMPES). Available cards are ABF, QIMPES_IMMISCIBLE, QIMPES_TWO_UNKNOWNS, QIMPES_VARIABLE, QIMPES_THREE_UNKNOWNS, QIMPES, QIMPES_ANY_UNKONWN, QIMPES_VARIABLE_FORCE. Default = QIMPES.

T1_SCALE

This options scales the decoupled pressure block to keep the shape of long waves of diffusion characteristics for AMG. This scaling is recommended and used by default.

T1_NO_SCALE

Turns off T1_SCALE

T3_SCALE

This option scales the decoupled saturation block as described in T1_SCALE.

T3_NO_SCALE

Turns off T3_SCALE. Recommended and used by default.

Examples

LINEAR_SOLVER
  SOLVER DIRECT
/

LINEAR_SOLVER
  SOLVER ITERATIVE
/

LINEAR_SOLVER
  SOLVER GMRES
  PRECONDITIONER ILU
/

Advanced PETSc options

LINEAR_SOLVER
  KSP_TYPE IBCGS
  PC_TYPE ASM
/

LINEAR_SOLVER
  KSP_TYPE PCNONE
  PC_TYPE LU
  LU_ZERO_PIVOT_TOL 1d-15
/

CPR options basic

LINEAR_SOLVER
  MAXIMUM_NUMBER_OF_ITERATIONS 1000
  SOLVER FGMRES
  PRECONDITIONER CPR
END

CPR options advanced

LINEAR_SOLVER
  MAXIMUM_NUMBER_OF_ITERATIONS 1000
  SOLVER FGMRES
  PRECONDITIONER CPR
  CPR_OPTIONS
    CPR_TYPE COMBINATIVE
    CPR_EXTRACTION_TYPE QIMPES
    T1_SCALE
  END
END