.TH BSpar_sym_solve 3 "2/12/1996" " " "BlockSolve95" .SH NAME BSpar_sym_solve \- Solve a symmetric positive definite system of equations using conjugate gradients preconditioned by one of several preconditioners. The rhs can be a block of vectors. The user should not call this function directly, but BSpar_solve(). .SH INPUT PARAMETERS .PD 0 .TP .B BS - the number of vectors in the RHS .PD 1 .PD 0 .TP .B A - a sparse matrix .PD 1 .PD 0 .TP .B fact_A - the incomplete factored version of A, if any .PD 1 .PD 0 .TP .B comm_A - the communication structure for A .PD 1 .PD 0 .TP .B in_rhs - the contiguous block of vectors forming the rhs .PD 1 .PD 0 .TP .B pre_option - the preconditioner to use .PD 1 .br PRE_ICC: incomplete Cholesky factorization .br PRE_ILU: incomplete LU factorization .br PRE_SSOR: Successive over relaxation .br PRE_BJACOBI: Block Jacobi .PD 0 .TP .B 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 .PD 1 .PD 0 .TP .B max_iter - the maximum number of iterations to take .PD 1 .PD 0 .TP .B residual - the final computed residual .PD 1 .PD 0 .TP .B guess - if TRUE, then initialize out_x to 0, otherwise the program assumes that out_x contains an initial guess .PD 1 .PD 0 .TP .B procinfo - the usual processor stuff .PD 1 .SH OUTPUT PARAMETERS .PD 0 .TP .B out_x - the contiguous block of vectors containing the solution .PD 1 .SH RETURNS The number of iterations or a negative number indicating the number of iterations prior to finding that the matrix (or preconditioner) is not positive definite. .SH NOTES The preconditioners must be computed prior to calling BSpar_isolve. For more information on the preconditioners, see the manual. .SH SYNOPSIS .nf int BSpar_sym_solve(int BS, BSpar_mat *A, BSpar_mat *fact_A, BScomm *comm_A, FLOAT *in_rhs, FLOAT *out_x, int pre_option, FLOAT err_tol, int max_iter, FLOAT *residual, int guess, BSprocinfo *procinfo) .fi .SH LOCATION BlockSolve95/src/BSpar_sym_solve.c