# naginterfaces.library.sparse.real_​gen_​solve_​bdilu¶

naginterfaces.library.sparse.real_gen_solve_bdilu(method, nnz, a, irow, icol, istb, indb, ipivp, ipivq, istr, idiag, b, m, tol, maxitn, x)[source]

real_gen_solve_bdilu solves a real sparse nonsymmetric system of linear equations, represented in coordinate storage format, using a restarted generalized minimal residual (RGMRES), conjugate gradient squared (CGS), stabilized bi-conjugate gradient (BI-CGSTAB), or transpose-free quasi-minimal residual (TFQMR) method, with block Jacobi or additive Schwarz preconditioning.

For full information please refer to the NAG Library document for f11dg

https://www.nag.com/numeric/nl/nagdoc_28.7/flhtml/f11/f11dgf.html

Parameters
methodstr

Specifies the iterative method to be used.

Restarted generalized minimum residual method.

Transpose-free quasi-minimal residual method.

nnzint

The values returned in arrays , , , , and by a previous call to real_gen_precon_bdilu().

The arrays , and together with the scalars , , , and must be the same values that were supplied in the preceding call to real_gen_precon_bdilu().

afloat, array-like, shape

The values returned in arrays , , , , and by a previous call to real_gen_precon_bdilu().

The arrays , and together with the scalars , , , and must be the same values that were supplied in the preceding call to real_gen_precon_bdilu().

irowint, array-like, shape

The values returned in arrays , , , , and by a previous call to real_gen_precon_bdilu().

The arrays , and together with the scalars , , , and must be the same values that were supplied in the preceding call to real_gen_precon_bdilu().

icolint, array-like, shape

The values returned in arrays , , , , and by a previous call to real_gen_precon_bdilu().

The arrays , and together with the scalars , , , and must be the same values that were supplied in the preceding call to real_gen_precon_bdilu().

istbint, array-like, shape

The values returned in arrays , , , , and by a previous call to real_gen_precon_bdilu().

The arrays , and together with the scalars , , , and must be the same values that were supplied in the preceding call to real_gen_precon_bdilu().

indbint, array-like, shape

The values returned in arrays , , , , and by a previous call to real_gen_precon_bdilu().

The arrays , and together with the scalars , , , and must be the same values that were supplied in the preceding call to real_gen_precon_bdilu().

ipivpint, array-like, shape

The values returned in arrays , , , , and by a previous call to real_gen_precon_bdilu().

The arrays , and together with the scalars , , , and must be the same values that were supplied in the preceding call to real_gen_precon_bdilu().

ipivqint, array-like, shape

The values returned in arrays , , , , and by a previous call to real_gen_precon_bdilu().

The arrays , and together with the scalars , , , and must be the same values that were supplied in the preceding call to real_gen_precon_bdilu().

istrint, array-like, shape

The values returned in arrays , , , , and by a previous call to real_gen_precon_bdilu().

The arrays , and together with the scalars , , , and must be the same values that were supplied in the preceding call to real_gen_precon_bdilu().

idiagint, array-like, shape

The values returned in arrays , , , , and by a previous call to real_gen_precon_bdilu().

The arrays , and together with the scalars , , , and must be the same values that were supplied in the preceding call to real_gen_precon_bdilu().

bfloat, array-like, shape

The right-hand side vector .

mint

If , is the dimension of the restart subspace.

If , is the order of the polynomial BI-CGSTAB method.

Otherwise, is not referenced.

tolfloat

The required tolerance. Let denote the approximate solution at iteration , and the corresponding residual. The algorithm is considered to have converged at iteration if

If , is used, where is the machine precision. Otherwise is used.

maxitnint

The maximum number of iterations allowed.

xfloat, array-like, shape

An initial approximation to the solution vector .

Returns
xfloat, ndarray, shape

An improved approximation to the solution vector .

rnormfloat

The final value of the residual norm , where is the output value of .

itnint

The number of iterations carried out.

Raises
NagValueError
(errno )

On entry, .

Constraint: .

(errno )

On entry, .

Constraint: .

(errno )

On entry, and .

Constraint: .

(errno )

On entry, and .

Constraint: .

(errno )

On entry, and .

Constraint: .

(errno )

On entry, .

Constraint: .

(errno )

On entry, for , and .

Constraint: , for .

(errno )

On entry, and .

Constraint: , for

(errno )

On entry, , and .

Constraint: .

(errno )

On entry, .

Constraint: , or .

(errno )

On entry, and .

Constraint: if , .

If , .

(errno )

On entry, .

Constraint: .

(errno )

On entry, .

Constraint: .

(errno )

On entry, and .

Constraint: , for .

Check that , , , , , and have not been corrupted between calls to real_gen_precon_bdilu() and real_gen_solve_bdilu.

(errno )

On entry, and .

Constraint: , for .

Check that , , , , , and have not been corrupted between calls to real_gen_precon_bdilu() and real_gen_solve_bdilu.

(errno )

On entry, element of was out of order.

Check that , , , , , and have not been corrupted between calls to real_gen_precon_bdilu() and real_gen_solve_bdilu.

(errno )

On entry, location of was a duplicate.

Check that , , , , , and have not been corrupted between calls to real_gen_precon_bdilu() and real_gen_solve_bdilu.

(errno )

The CS representation of the preconditioner is invalid.

Check that , , , , , and have not been corrupted between calls to real_gen_precon_bdilu() and real_gen_solve_bdilu.

(errno )

The required accuracy could not be obtained. However a reasonable accuracy may have been achieved. You should check the output value of for acceptability. This error code usually implies that your problem has been fully and satisfactorily solved to within or close to the accuracy available on your system. Further iterations are unlikely to improve on this situation.

(errno )

The solution has not converged after iterations.

(errno )

Algorithmic breakdown. A solution is returned, although it is possible that it is completely inaccurate.

Notes

real_gen_solve_bdilu solves a real sparse nonsymmetric linear system of equations:

using a preconditioned RGMRES (see Saad and Schultz (1986)), CGS (see Sonneveld (1989)), BI-CGSTAB() (see Van der Vorst (1989) and Sleijpen and Fokkema (1993)), or TFQMR (see Freund and Nachtigal (1991) and Freund (1993)) method.

real_gen_solve_bdilu uses the incomplete (possibly overlapping) block factorization determined by real_gen_precon_bdilu() as the preconditioning matrix. A call to real_gen_solve_bdilu must always be preceded by a call to real_gen_precon_bdilu(). Alternative preconditioners for the same storage scheme are available by calling real_gen_solve_ilu() or real_gen_solve_jacssor().

The matrix , and the preconditioning matrix , are represented in coordinate storage (CS) format (see the F11 Introduction) in the arrays , and , as returned from real_gen_precon_bdilu(). The array holds the nonzero entries in these matrices, while and hold the corresponding row and column indices.

real_gen_solve_bdilu is a Black Box function which calls real_gen_basic_setup(), real_gen_basic_solver() and real_gen_basic_diag(). If you wish to use an alternative storage scheme, preconditioner, or termination criterion, or require additional diagnostic information, you should call these underlying functions directly.

References

Freund, R W, 1993, A transpose-free quasi-minimal residual algorithm for non-Hermitian linear systems, SIAM J. Sci. Comput. (14), 470–482

Freund, R W and Nachtigal, N, 1991, QMR: a Quasi-Minimal Residual Method for Non-Hermitian Linear Systems, Numer. Math. (60), 315–339

Saad, Y and Schultz, M, 1986, GMRES: a generalized minimal residual algorithm for solving nonsymmetric linear systems, SIAM J. Sci. Statist. Comput. (7), 856–869

Salvini, S A and Shaw, G J, 1996, An evaluation of new NAG Library solvers for large sparse unsymmetric linear systems, NAG Technical Report TR2/96

Sleijpen, G L G and Fokkema, D R, 1993, BiCGSTAB for linear equations involving matrices with complex spectrum, ETNA (1), 11–32

Sonneveld, P, 1989, CGS, a fast Lanczos-type solver for nonsymmetric linear systems, SIAM J. Sci. Statist. Comput. (10), 36–52

Van der Vorst, H, 1989, Bi-CGSTAB, a fast and smoothly converging variant of Bi-CG for the solution of nonsymmetric linear systems, SIAM J. Sci. Statist. Comput. (13), 631–644