# Options for Linear solver algorithms¶

## BICG¶

Module: `gemseo.algos.linear_solvers.lib_scipy_linalg`

Linear solver implemented in the SciPy library.

More details about the algorithm and its options on https://docs.scipy.org/doc/scipy/reference/generated/BICG.html.

Here are the options available in GEMSEO:

- Options
**atol**(*Optional[float]*)The absolute tolerance for convergence, norm(RHS.dot(sol)) <= max(tol*norm(LHS), atol).

By default it is set to None.

**inner_m**(*int*)By default it is set to 30.

**max_iter**(*int*)The maximum number of iterations.

By default it is set to 1000.

**outer_k**(*int*)The number of vectors to carry between inner GMRES iterations.

By default it is set to 3.

**outer_v**(*Optional[List[Tuple]]*)The data used to augment the Krylov subspace.

By default it is set to None.

**preconditioner**(*Optional[Union[ndarray,*)The preconditionner, approximation of RHS^-1. If None, no preconditioner is used.

By default it is set to None.

**prepend_outer_v**(*bool*)Whether to put outer_v augmentation vectors before the Krylov iterates.

By default it is set to False.

**save_when_fail**(*bool*)Whether to save the linear system to the disk when the solver failed to converge.

By default it is set to False.

**store_outer_av**(*bool*)By default it is set to True.

**store_residuals**(*bool*)Whether to store the residuals convergence history.

By default it is set to False.

**tol**(*float*)The relative tolerance for convergence, norm(RHS.dot(sol)) <= max(tol*norm(LHS), atol).

By default it is set to 1e-12.

**use_ilu_precond**(*bool*)Whether to use superLU to compute an incomplete LU factorization as preconditioner.

By default it is set to True.

**x0**(*Optional[ndarray]*)The initial guess for the solution. M{sparse matrix, dense matrix, LinearOperator}. If None, solvers usually start from the null vector. inner_m int: The number of inner GMRES iterations per outer iteration.

By default it is set to None.

## BICGSTAB¶

Module: `gemseo.algos.linear_solvers.lib_scipy_linalg`

Linear solver implemented in the SciPy library.

More details about the algorithm and its options on https://docs.scipy.org/doc/scipy/reference/generated/BICGSTAB.html.

Here are the options available in GEMSEO:

- Options
**atol**(*Optional[float]*)The absolute tolerance for convergence, norm(RHS.dot(sol)) <= max(tol*norm(LHS), atol).

By default it is set to None.

**inner_m**(*int*)By default it is set to 30.

**max_iter**(*int*)The maximum number of iterations.

By default it is set to 1000.

**outer_k**(*int*)The number of vectors to carry between inner GMRES iterations.

By default it is set to 3.

**outer_v**(*Optional[List[Tuple]]*)The data used to augment the Krylov subspace.

By default it is set to None.

**preconditioner**(*Optional[Union[ndarray,*)The preconditionner, approximation of RHS^-1. If None, no preconditioner is used.

By default it is set to None.

**prepend_outer_v**(*bool*)Whether to put outer_v augmentation vectors before the Krylov iterates.

By default it is set to False.

**save_when_fail**(*bool*)Whether to save the linear system to the disk when the solver failed to converge.

By default it is set to False.

**store_outer_av**(*bool*)By default it is set to True.

**store_residuals**(*bool*)Whether to store the residuals convergence history.

By default it is set to False.

**tol**(*float*)The relative tolerance for convergence, norm(RHS.dot(sol)) <= max(tol*norm(LHS), atol).

By default it is set to 1e-12.

**use_ilu_precond**(*bool*)Whether to use superLU to compute an incomplete LU factorization as preconditioner.

By default it is set to True.

**x0**(*Optional[ndarray]*)The initial guess for the solution. M{sparse matrix, dense matrix, LinearOperator}. If None, solvers usually start from the null vector. inner_m int: The number of inner GMRES iterations per outer iteration.

By default it is set to None.

## DEFAULT¶

Module: `gemseo.algos.linear_solvers.lib_scipy_linalg`

This starts by LGMRES, but if it fails, switches to GMRES, then direct method super LU factorization.

More details about the algorithm and its options on https://docs.scipy.org/doc/scipy/reference/generated/DEFAULT.html.

Here are the options available in GEMSEO:

- Options
**atol**(*Optional[float]*)The absolute tolerance for convergence, norm(RHS.dot(sol)) <= max(tol*norm(LHS), atol).

By default it is set to None.

**inner_m**(*int*)By default it is set to 30.

**max_iter**(*int*)The maximum number of iterations.

By default it is set to 1000.

**outer_k**(*int*)The number of vectors to carry between inner GMRES iterations.

By default it is set to 3.

**outer_v**(*Optional[List[Tuple]]*)The data used to augment the Krylov subspace.

By default it is set to None.

**preconditioner**(*Optional[Union[ndarray,*)The preconditionner, approximation of RHS^-1. If None, no preconditioner is used.

By default it is set to None.

**prepend_outer_v**(*bool*)Whether to put outer_v augmentation vectors before the Krylov iterates.

By default it is set to False.

**save_when_fail**(*bool*)Whether to save the linear system to the disk when the solver failed to converge.

By default it is set to False.

**store_outer_av**(*bool*)By default it is set to True.

**store_residuals**(*bool*)Whether to store the residuals convergence history.

By default it is set to False.

**tol**(*float*)The relative tolerance for convergence, norm(RHS.dot(sol)) <= max(tol*norm(LHS), atol).

By default it is set to 1e-12.

**use_ilu_precond**(*bool*)Whether to use superLU to compute an incomplete LU factorization as preconditioner.

By default it is set to True.

**x0**(*Optional[ndarray]*)The initial guess for the solution. M{sparse matrix, dense matrix, LinearOperator}. If None, solvers usually start from the null vector. inner_m int: The number of inner GMRES iterations per outer iteration.

By default it is set to None.

## GMRES¶

Module: `gemseo.algos.linear_solvers.lib_scipy_linalg`

Linear solver implemented in the SciPy library.

More details about the algorithm and its options on https://docs.scipy.org/doc/scipy/reference/generated/GMRES.html.

Here are the options available in GEMSEO:

- Options
**atol**(*Optional[float]*)The absolute tolerance for convergence, norm(RHS.dot(sol)) <= max(tol*norm(LHS), atol).

By default it is set to None.

**inner_m**(*int*)By default it is set to 30.

**max_iter**(*int*)The maximum number of iterations.

By default it is set to 1000.

**outer_k**(*int*)The number of vectors to carry between inner GMRES iterations.

By default it is set to 3.

**outer_v**(*Optional[List[Tuple]]*)The data used to augment the Krylov subspace.

By default it is set to None.

**preconditioner**(*Optional[Union[ndarray,*)The preconditionner, approximation of RHS^-1. If None, no preconditioner is used.

By default it is set to None.

**prepend_outer_v**(*bool*)Whether to put outer_v augmentation vectors before the Krylov iterates.

By default it is set to False.

**save_when_fail**(*bool*)Whether to save the linear system to the disk when the solver failed to converge.

By default it is set to False.

**store_outer_av**(*bool*)By default it is set to True.

**store_residuals**(*bool*)Whether to store the residuals convergence history.

By default it is set to False.

**tol**(*float*)The relative tolerance for convergence, norm(RHS.dot(sol)) <= max(tol*norm(LHS), atol).

By default it is set to 1e-12.

**use_ilu_precond**(*bool*)Whether to use superLU to compute an incomplete LU factorization as preconditioner.

By default it is set to True.

**x0**(*Optional[ndarray]*)By default it is set to None.

## LGMRES¶

Module: `gemseo.algos.linear_solvers.lib_scipy_linalg`

Linear solver implemented in the SciPy library.

More details about the algorithm and its options on https://docs.scipy.org/doc/scipy/reference/generated/LGMRES.html.

Here are the options available in GEMSEO:

- Options
**atol**(*Optional[float]*)The absolute tolerance for convergence, norm(RHS.dot(sol)) <= max(tol*norm(LHS), atol).

By default it is set to None.

**inner_m**(*int*)By default it is set to 30.

**max_iter**(*int*)The maximum number of iterations.

By default it is set to 1000.

**outer_k**(*int*)The number of vectors to carry between inner GMRES iterations.

By default it is set to 3.

**outer_v**(*Optional[List[Tuple]]*)The data used to augment the Krylov subspace.

By default it is set to None.

**preconditioner**(*Optional[Union[ndarray,*)The preconditionner, approximation of RHS^-1. If None, no preconditioner is used.

By default it is set to None.

**prepend_outer_v**(*bool*)Whether to put outer_v augmentation vectors before the Krylov iterates.

By default it is set to False.

**save_when_fail**(*bool*)Whether to save the linear system to the disk when the solver failed to converge.

By default it is set to False.

**store_outer_av**(*bool*)By default it is set to True.

**store_residuals**(*bool*)Whether to store the residuals convergence history.

By default it is set to False.

**tol**(*float*)The relative tolerance for convergence, norm(RHS.dot(sol)) <= max(tol*norm(LHS), atol).

By default it is set to 1e-12.

**use_ilu_precond**(*bool*)Whether to use superLU to compute an incomplete LU factorization as preconditioner.

By default it is set to True.

**x0**(*Optional[ndarray]*)By default it is set to None.

## QMR¶

Module: `gemseo.algos.linear_solvers.lib_scipy_linalg`

Linear solver implemented in the SciPy library.

More details about the algorithm and its options on https://docs.scipy.org/doc/scipy/reference/generated/QMR.html.

Here are the options available in GEMSEO:

- Options
**atol**(*Optional[float]*)The absolute tolerance for convergence, norm(RHS.dot(sol)) <= max(tol*norm(LHS), atol).

By default it is set to None.

**inner_m**(*int*)By default it is set to 30.

**max_iter**(*int*)The maximum number of iterations.

By default it is set to 1000.

**outer_k**(*int*)The number of vectors to carry between inner GMRES iterations.

By default it is set to 3.

**outer_v**(*Optional[List[Tuple]]*)The data used to augment the Krylov subspace.

By default it is set to None.

**preconditioner**(*Optional[Union[ndarray,*)The preconditionner, approximation of RHS^-1. If None, no preconditioner is used.

By default it is set to None.

**prepend_outer_v**(*bool*)Whether to put outer_v augmentation vectors before the Krylov iterates.

By default it is set to False.

**save_when_fail**(*bool*)Whether to save the linear system to the disk when the solver failed to converge.

By default it is set to False.

**store_outer_av**(*bool*)By default it is set to True.

**store_residuals**(*bool*)Whether to store the residuals convergence history.

By default it is set to False.

**tol**(*float*)The relative tolerance for convergence, norm(RHS.dot(sol)) <= max(tol*norm(LHS), atol).

By default it is set to 1e-12.

**use_ilu_precond**(*bool*)Whether to use superLU to compute an incomplete LU factorization as preconditioner.

By default it is set to True.

**x0**(*Optional[ndarray]*)By default it is set to None.