BSpar_isolve - Solve a symmetric indefinite system of equations using symmlq
preconditioned by one of several preconditioners.
- A
- - a sparse matrix
- fact_A
- - the incomplete factored version of A, if any (NULL if not exist)
- comm_A
- - the communication structure for A
- B
- - a sparse matrix
- comm_B
- - the communication structure for B
- in_rhs
- - the rhs
- shift
- - the shift to multiply B by
- pre_option
- - the preconditioner to use
PRE_ICC: incomplete Cholesky factorization of A
PRE_ILU: incomplete LU factorization of A
PRE_SSOR: Successive over relaxation (using just A)
PRE_BJACOBI: Block Jacobi (using just A)
- residual
- - the final computed residual
- procinfo
- - the usual processor stuff
- out_x
- - the solution vector
The number of iterations.
The system solved is (A-shift*B)out_x = in_rhs. The preconditioners must be
computed prior to calling BSpar_isolve. For more information on the
preconditioners, see the manual.
The following are now specified in the context:
err_tol - the tolerance to which to solve the problem
stop if the estimated norm of the residual divided by
the norm of the rhs is less than err_tol
max_iter - the maximum number of iterations to take
guess - if TRUE, then initialize out_x to 0, otherwise
the program assumes that out_x contains an initial
guess
int BSpar_isolve(BSpar_mat *A, BSpar_mat *fact_A, BScomm *comm_A,
BSpar_mat *B, BScomm *comm_B, FLOAT *in_rhs, FLOAT *out_x,
FLOAT shift, FLOAT *residual, BSprocinfo *procinfo)
BlockSolve95/src/BSpar_isolve.c