f11jbf solves a system of linear equations involving the incomplete Cholesky preconditioning matrix generated by
f11jaf.
f11jbf solves a system of linear equations
involving the preconditioning matrix
$M=PLD{L}^{\mathrm{T}}{P}^{\mathrm{T}}$, corresponding to an incomplete Cholesky decomposition of a sparse symmetric matrix stored in symmetric coordinate storage (SCS) format (see
Section 2.1.2 in the F11 Chapter Introduction), as generated by
f11jaf.
In the above decomposition
$L$ is a lower triangular sparse matrix with unit diagonal,
$D$ is a diagonal matrix and
$P$ is a permutation matrix.
$L$ and
$D$ are supplied to
f11jbf through the matrix
which is a lower triangular
n by
n sparse matrix, stored in SCS format, as returned by
f11jaf. The permutation matrix
$P$ is returned from
f11jaf via the array
ipiv.
It is envisaged that a common use of
f11jbf will be to carry out the preconditioning step required in the application of
f11gef to sparse symmetric linear systems.
f11jbf is used for this purpose by the Black Box routine
f11jcf.
f11jbf may also be used in combination with
f11jaf to solve a sparse symmetric positive definite system of linear equations directly (see
Section 9.4 in
f11jaf). This use of
f11jbf is demonstrated in
Section 10.
None.
If on entry
${\mathbf{ifail}}=0$ or
$-1$, explanatory error messages are output on the current error message unit (as defined by
x04aaf).
The computed solution
$x$ is the exact solution of a perturbed system of equations
$\left(M+\delta M\right)x=y$, where
$c\left(n\right)$ is a modest linear function of
$n$, and
$\epsilon $ is the
machine precision.
The time taken for a call to
f11jbf is proportional to the value of
nnzc returned from
f11jaf.
It is expected that a common use of
f11jbf will be to carry out the preconditioning step required in the application of
f11gef to sparse symmetric linear systems. In this situation
f11jbf is likely to be called many times with the same matrix
$M$. In the interests of both reliability and efficiency, you are recommended to set
${\mathbf{check}}=\text{'C'}$ for the first of such calls, and to set
${\mathbf{check}}=\text{'N'}$ for all subsequent calls.
This example reads in a symmetric positive definite sparse matrix
$A$ and a vector
$y$. It then calls
f11jaf, with
${\mathbf{lfill}}=-1$ and
${\mathbf{dtol}}=0.0$, to compute the
complete Cholesky decomposition of
$A$:
Then it calls
f11jbf to solve the system
It then repeats the exercise for the same matrix permuted with the bandwidth-reducing Reverse Cuthill–McKee permutation, calculated with
f11yef.