nag_sparse_sym_precon_ssor_solve (f11jdc) solves a system of linear equations involving the preconditioning matrix corresponding to SSOR applied to a real sparse symmetric matrix, represented in symmetric coordinate storage format.
nag_sparse_sym_precon_ssor_solve (f11jdc) solves a system of equations
involving the preconditioning matrix
corresponding to symmetric successive-over-relaxation (SSOR) (see
Young (1971)) on a linear system
, where
is a sparse symmetric matrix stored in symmetric coordinate storage (SCS) format (see
Section 2.1.2 in the f11 Chapter Introduction).
It is envisaged that a common use of nag_sparse_sym_precon_ssor_solve (f11jdc) will be to carry out the preconditioning step required in the application of
nag_sparse_sym_basic_solver (f11gec) to sparse linear systems. For an illustration of this use of nag_sparse_sym_precon_ssor_solve (f11jdc) see the example program given in
Section 10.1. nag_sparse_sym_precon_ssor_solve (f11jdc) is also used for this purpose by the Black Box function
nag_sparse_sym_sol (f11jec).
- NE_ALLOC_FAIL
-
Dynamic memory allocation failed.
- NE_BAD_PARAM
-
On entry, argument had an illegal value.
- NE_INT
-
On entry, .
Constraint: .
On entry, .
Constraint: .
- NE_INT_2
-
On entry, and .
Constraint:
- NE_INTERNAL_ERROR
-
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact
NAG for assistance.
- NE_INVALID_SCS
-
On entry, , and .
Constraint: and .
On entry, , and .
Constraint: and .
- NE_NOT_STRICTLY_INCREASING
-
On entry, is out of order: .
On entry, the location (
) is a duplicate:
. Consider calling
nag_sparse_sym_sort (f11zbc) to reorder and sum or remove duplicates.
- NE_REAL
-
On entry, .
Constraint:
- NE_ZERO_DIAG_ELEM
-
The matrix has no diagonal entry in row .
The computed solution
is the exact solution of a perturbed system of equations
, where
is a modest linear function of
, and
is the
machine precision.
Not applicable.
The time taken for a call to nag_sparse_sym_precon_ssor_solve (f11jdc) is proportional to
nnz.
It is expected that a common use of nag_sparse_sym_precon_ssor_solve (f11jdc) will be to carry out the preconditioning step required in the application of
nag_sparse_sym_basic_solver (f11gec) to sparse symmetric linear systems. In this situation nag_sparse_sym_precon_ssor_solve (f11jdc) is likely to be called many times with the same matrix
. In the interests of both reliability and efficiency, you are recommended to set
for the first of such calls, and to set
for all subsequent calls.
This example solves a sparse symmetric linear system of equations
using the conjugate-gradient (CG) method with SSOR preconditioning.
The CG algorithm itself is implemented by the reverse communication function
nag_sparse_sym_basic_solver (f11gec), which returns repeatedly to the calling program with various values of the argument
irevcm. This argument indicates the action to be taken by the calling program.
- If , a matrix-vector product is required. This is implemented by a call to nag_sparse_sym_matvec (f11xec).
- If , a solution of the preconditioning equation is required. This is achieved by a call to nag_sparse_sym_precon_ssor_solve (f11jdc).
- If , nag_sparse_sym_basic_solver (f11gec) has completed its tasks. Either the iteration has terminated, or an error condition has arisen.
For further details see the function document for
nag_sparse_sym_basic_solver (f11gec).