===== readme for slap ===== PURPOSE Sparse Linear Algebra Package Version 2.0 Routines to solve large sparse symmetric and nonsymmetric positive definite linear systems, Ax = b, using precondit- ioned iterative methods. This package was originally derived from a set of iterative routines written by Anne Greenbaum, "Routines for Solving Large Sparse Linear Systems", Lawrence Livermore Nat. Laboratory, Livermore Computing Center, January 1986 Tentacle, pp 15-21. DESCRIPTION The Sparse Linear Algebra Package SLAP Version 2.0 ================================================================= ========================== Introduction ========================= ================================================================= This document contains the specifications for the SLAP Version 2.0 package, a Fortran 77 package for the solution of large sparse linear systems, Ax = b, via preconditioned iterative methods. Included in this package are "core" routines to do Iterative Refinement (Jacobi's method), Conjugate Gradient, Conjugate Gradient on the normal equations, AA'y = b, (where x = A'y and A' denotes the transpose of A), BiConjugate Gradient, BiConjugate Gradient Squared, Orthomin and Generalized Minimum Residual Iteration. These "core" routines do not require a "fixed" data structure for storing the matrix A and the preconditioning matrix M. The user is free to choose any structure that facilitates efficient solution of the problem at hand. The drawback to this approach is that the user must also supply at least two routines (MATVEC and MSOLVE, say). MATVEC must calculate, y = Ax, given x and the user's data structure for A. MSOLVE must solve, r = Mz, for z (*NOT* r) given r and the user's data structure for M (or its inverse). The user should choose M so that MA is approximately the identity and the solution step r = Mz is "easy" to solve. For some of the "core" routines (Orthomin, BiConjugate Gradient and Conjugate Gradient on the normal equations) the user must also supply a matrix transpose times vector routine (MTTVEC, say) and (possibly, depending on the "core" method) a routine that solves the transpose of the preconditioning step (MTSOLV, say). Specifically, MTTVEC is a routine which calculates y = A'x, given x and the user's data structure for A (A' is the transpose of A). MTSOLV is a routine which solves the system r = M'z for z given r and the user's data structure for M. AUTHOR Seager, Mark. K., (LLNL) User Systems Division Lawrence Livermore National Laboratory PO BOX 808, L-300 Livermore, CA 94550 (FTS) 543-3141, (415) 423-3141 seager@lll-crg.llnl.gov REFERENCES 1. M. Seager, ``A SLAP for the Masses,'' Lawrence Livermore Nat. Laboratory Technical Report, UCRL-100267, December 1988.