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://support.nag.com/numeric/nl/nagdoc_30.3/flhtml/f11/f11dgf.html
- Parameters
- methodstr
Specifies the iterative method to be used.
Restarted generalized minimum residual method.
Conjugate gradient squared method.
Bi-conjugate gradient stabilized () 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()
andreal_gen_solve_bdilu
.- (errno )
On entry, and .
Constraint: , for .
Check that , , , , , and have not been corrupted between calls to
real_gen_precon_bdilu()
andreal_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()
andreal_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()
andreal_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()
andreal_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 byreal_gen_precon_bdilu()
as the preconditioning matrix. A call toreal_gen_solve_bdilu
must always be preceded by a call toreal_gen_precon_bdilu()
. Alternative preconditioners for the same storage scheme are available by callingreal_gen_solve_ilu()
orreal_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 callsreal_gen_basic_setup()
,real_gen_basic_solver()
andreal_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