# Options for Linear solver algorithms¶

## BICG¶

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¶

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¶

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¶

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])

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.

## LGMRES¶

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])

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.

## QMR¶

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])

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.