Linear solvers: Advanced options

This section targets advanced users and wants to help understanding what solver parameters do. Most advanced users who wants to select manually the solver to use and not only the type of solver must change their user mode: Flux Supervisor > Options > User mode > Advanced, then close and reopen Flux to apply that change. In the advanced mode, the solving options box displays significantly more options for linear solvers. Here is the list of linear solvers for instance:

Type Solver Name Parallel Distributed
N/A Automatic solver [default] N/A N/A
Iterative ICCG[default] No No
IJCG No No
PETSc Yes Yes
GMRes No No
BICGStab No No
Direct SuperLU No No
Mumps (Local) [default] Yes No
Mumps (Distributed) Yes Yes
N/A Solver by user subroutine N/A N/A
N/A External solver N/A N/A

For parallel and distributed solvers, you can set computing parameters globally in Flux Supervisor > Options > System > Parallel computing. These parameters are used to set some default options for Mumps and PETSc, see parallel computing for more details.

Below the details of each solver parameter is provided.

ICCG and IJCG

ICCG and IJCG are iterative solvers which use the conjugate gradient for the solving and the incomplete Cholesky factorization of LDLT for the preconditioning. In steady State AC, ICCG and IJCG use the conjugate bigradient for the solving and the incomplete factorization LDU for the preconditioning

Options

Parameter Description

Precision for the Conjugate Gradient

Relative precision to satisfy before stopping the iterative process.

Default value: 1.0e-6

Maximum number of iterations for the Conjugate

Gradient

Maximum number of iterations to compute before stopping the iterative process. Two options are available to set the number of iterations:

  • A linear function which takes two integers as inputs (A and B) defined as:

    N = A   ×   n u m b e r   o f   d e g r e e s   o f   f r e e d o m + B

  • A fixed value N

Default value: Linear function with A = 1 and B = 1, which is the number of equations of the problem.

Tolerance for the LDU preconditioning

Precision of the preconditioner.

Default value: 1.0e-7
Print messages of the convergence evolution

Flag indicating to verbosity level of the iterative process. Set to “Yes” to prompt the evolution of the iteration process during the solving.

Default value: “No”

PETSc

PETSc is a library of parallel and distribute iterative solvers. A pre-selection of pairs of solver/preconditioner was made depending on the dimension and type of problem. In 2D, the LGRMRES/ILU or the BCGS/ILU pairs are used. For 3D problems, the default solver is the TFQMR/ICC and if it fails the BCGS/ILU will be used. The process number is defined in Flux Supervisor, see parallel computing for details.

Options

No options are available for the current version

GMRes

GMRes is an iterative solver which uses the restart generalized minimum residual for the solving and the incomplete factorization with ILUT for the preconditioning.

Options

Parameter Description
Precision for GMRes

Relative precision to satisfy before stopping the iterative process.

Default value: 1.0e-6

Maximum number of iterations for the GMRes

Maximum number of iterations to compute before stopping the iterative process. Two options are available to set the number of iterations:

  • A linear function which takes two integers as inputs (A and B) defined as:

    N = A   ×   n u m b e r   o f   d e g r e e s   o f   f r e e d o m + B

  • A fixed value N

Default value: Linear function with A = 1 and B = 1, which is the number of equations of the problem.

Tolerance for the ILUT preconditioning

Precision of the preconditioner.

Default value: 1.0e-6

Coefficient for the level of fill for the ILUT preconditioning

Filling factor of the ILUT preconditioner.

Default value: 6.0

Dimension of the Krylov space

Number of vectors to store in order to build Krylov space.

Default value: 120

Print messages of the convergence evolution

Flag indicating to verbosity level of the iterative process. Set to “Yes” to prompt the evolution of the iteration process during the solving.

Default value: “No”

BiCGStab

BiCGStab is an iterative solver which uses the stabilized conjugate bi-gradient for the solving and the incomplete Choleski factorization of LDLT for the preconditioning. In steady State AC, BiCGStab uses incomplete factorization LDU for the preconditioning

Options

Parameter Description

Precision for the BiCGStab

Relative precision to satisfy before stopping the iterative process.

Default value: 1.0e-6

Maximum number of iterations for BiCGStab

Maximum number of iterations to compute before stopping the iterative process. Two options are available to set the number of iterations:

  • A linear function which takes two integers as inputs (A and B) defined as:

    N = A   ×   n u m b e r   o f   d e g r e e s   o f   f r e e d o m + B

  • A fixed value N

Default value: Linear function with A = 1 and B = 1, which is the number of equations of the problem.

Tolerance for the LDU preconditioning

Precision of the preconditioner.

Default value: 1.0e-7

Print messages of the convergence evolution

Flag indicating to verbosity level of the iterative process. Set to “Yes” to prompt the evolution of the iteration process during the solving.

Default value: “No”

SuperLU

SuperLU is a direct method which uses the Gaussian elimination algorithm.

Options

Parameter Description
Column reordering algorithm

Specifies how to permute the columns of the matrix for sparsity preservation. The reordering methods are:

  • Minimum degree on AT + A, minimum degree ordering on the structure of AT + A
  • Minimum degree on AT * A, minimum degree ordering on the structure of AT * A;
  • COLAMD, approximates minimum degree column ordering;
  • Dissection (2D) [Automatic in 2D], use METIS for the reordering;
  • Dissection (3D) [Automatic in 3D], use METIS for the reordering;

Default value: “Automatically specified reordering method”

Partial row pivoting

Set the row pivoting method. Two choices are available:

  • 0.0 to disable the pivoting;
  • ]0.0, 1.0[ to use the relaxed partial pivoting;
  • 1.0 to use the classical pivoting method.

Default value: 0.0

Iterative refinement

Specifies whether to perform iterative refinement, and in what precision to compute the residual.

Default value: “Without”

Symmetric mode

Specifies whether to use the symmetric mode. Symmetric mode gives preference to diagonal pivots and uses an (AT + A)-based column permutation algorithm.

Default value: “Without”

Pivot growth computation

Specifies whether to compute the reciprocal pivot growth.

Default value: “Without”

Condition number computation

Specifies whether to compute the reciprocal condition number.

Default value: “Without”

Mumps

Mumps is a direct solver, based on a multi frontal approach.

Mumps (Local) is a mono-process, but multithread solver. There is only one process while number of threads is fixed by cores number choose by the user from the Flux supervisor.

Mumps (Distributed) is a multi-process and multithread solver. Process and thread numbers are defined in Flux Supervisor, see parallel computing for details.

Options

Parameter Description
Verbosity level

Set the level of verbosity during the solving process. Four levels are available to decide what information will be prompted:

  • 1- Only errors messages
  • 2- Errors, warnings and main statistics
  • 3- Errors, warnings and terse diagnostics
  • 4- Errors, warnings and information on input and output parameters

Default value: “1- Only errors messages”

Using disk memory

Set the options regarding disk usage. Four options are available:

  • No, do not use the disk memory
  • Automatic – Switch over to Out-of-core depending on the matrix size
  • Yes – Default temporary directory
  • Yes – Choice of the temporary directory

Default value: “No”

Reordering method

Set the reordering method to use. Five methods can be used:

  • METIS
  • AMD – Approximate Minimum Degree
  • QAMD – AMD with quasi-dense rows detection
  • PORD
  • AMF

Default value: “Automatic – Choice in Mumps”

Memory limitation (RAM)

Set the memory limitation. It allows the user to limit the memory Mumps can use (in MB).

Default value: Unlimited

MPI Options

Only for MUMPS (Distributed). Set to define MPI Options. To enable MPI computations, the MPI number can be specified with the Thread number.

Default value: “No"