AbstractNSPCG is the most recent research‐oriented software package developed as part of the ITPACK Project at the Center for Numerical Analysis of The University of Texas at Austin. It is designed to solve large sparse systems of linear equations by a variety of different non‐symmetric preconditioned conjugate gradient methods. Several different sparse data storage schemes are available for storing the coefficient matrix of the linear system. Matrices with a wide range of structures from highly structured to completely unstructured can be accommodated. To limit memory requirements, the accelerators in the package can be called directly with the matrix stored in a user‐defined sparse data storage format (for example, from a particular application) by supplying some user‐written routines for certain matrix–vector operations.The main entry point into the package is through a single subroutine call. The various methods are accessed by using a particular naming convention for the first two parameters that in turn selects a preconditioner, an accelerator and a data storage scheme. Some of the basic preconditioners that are available are Jacobi, Incomplete LU Decomposition and Symmetric Successive Overrelaxation as well as block preconditioners. The user can select from a large collection of accelerators such as Conjugate Gradient (CG), Chebyshev (SI, for semi‐iterative), Generalized Minimal Residual (GMRES), Biconjugate Gradient Squared (BCGS) and many others. The package is modular so that almost any accelerator can be used with almost any preconditioner. One of the main purposes for the development of the package was to provide a common modular structure for research on iterative methods. The entire package is written in Fortran 77 with vectorization in mind for applications on supercomputers.
Read full abstract