\documentstyle{article} \oddsidemargin 0.0in \evensidemargin 0.0in \pagestyle{empty} \topmargin -0.5in \textheight 9.0in \textwidth 6.5in \def \la{\langle} \def \ra{\rangle} \def \lb{\left[} \def \rb{\right]} \def \ha{\frac{1}{2}} \begin{document} \centerline{\bf NSPCG Quick Reference} \bigskip \noindent {\bf Calls to Top Level Routines} \bigskip \begin{tabular}{l} {\tt CALL DFAULT (IPARM,RPARM)} \\ {\tt CALL VFILL (N,U,VAL)} \\ {\tt CALL NSPCG ($\la$~{\em precon}~$\ra$,$\la$~{\em accel}~$\ra$, NDIM,MDIM,N,MAXNZ,COEF,JCOEF,P,IP,U,UBAR,RHS,} \\ {\tt \hspace*{2.5in} WKSP,IWKSP,NW,INW,IPARM,RPARM,IER) } \end{tabular} \bigskip \noindent {\bf Calls to Accelerators in Matrix Format-Free Mode} \bigskip \begin{tabular}{l} {\tt CGW (SUBA,SUBQL, COEF,JCOEF,WFAC,JWFAC,N,U,UBAR,RHS,WKSP,NW,IPARM,RPARM,IER) } \\ {\tt SIW (SUBA,SUBQL,COEF,\ldots ) } \\ {\tt SORW (SUBA,SUBQ,COEF,\ldots ) } \\ {\tt SRCGW (SUBA,SUBQL,SUBADP,COEF,\ldots ) } \\ {\tt SRSIW (SUBA,SUBQL,SUBADP,COEF,\ldots ) } \\ {\tt BASICW (SUBA,SUBQL,SUBQR,COEF,\ldots ) } \\ {\tt MEW (SUBA,SUBQL,SUBQR,COEF,\ldots ) } \\ {\tt CGNRW (SUBA,SUBAT,SUBQL,SUBQLT,SUBQR,SUBQRT,COEF,\ldots ) } \\ {\tt LSQRW (SUBA,SUBAT,SUBQL,SUBQLT,SUBQR,SUBQRT,COEF,\ldots ) } \\ {\tt ODIRW (SUBA,SUBQL,SUBQR,COEF,\ldots ) } \\ {\tt OMINW (SUBA,SUBQL,SUBQR,COEF,\ldots ) } \\ {\tt ORESW (SUBA,SUBQL,SUBQR,COEF,\ldots ) } \\ {\tt IOMW (SUBA,SUBQL,SUBQR,COEF,\ldots ) } \\ {\tt GMRESW (SUBA,SUBQL,SUBQR,COEF,\ldots ) } \\ {\tt USLQW (SUBA,SUBAT,SUBQL,SUBQLT,SUBQR,SUBQRT,COEF,\ldots ) } \\ {\tt USQRW (SUBA,SUBAT,SUBQL,SUBQLT,SUBQR,SUBQRT,COEF,\ldots ) } \\ {\tt LDIRW (SUBA,SUBAT,SUBQL,SUBQLT,SUBQR,SUBQRT,COEF,\ldots ) } \\ {\tt LMINW (SUBA,SUBAT,SUBQL,SUBQLT,SUBQR,SUBQRT,COEF,\ldots ) } \\ {\tt LRESW (SUBA,SUBAT,SUBQL,SUBQLT,SUBQR,SUBQRT,COEF,\ldots ) } \\ {\tt BCGSW (SUBA,SUBQL,SUBQR,COEF,\ldots ) } \end{tabular} \bigskip \noindent {\bf Calls to Matrix Format-Free Operations} \bigskip \begin{tabular}{l} {\tt CALL SUBA (COEF,JCOEF,WFAC,JWFAC,N,X,Y)} \\ {\tt CALL SUBAT (COEF,JCOEF,WFAC,JWFAC,N,X,Y)} \\ {\tt CALL SUBQL (COEF,JCOEF,WFAC,JWFAC,N,X,Y)} \\ {\tt CALL SUBQR (COEF,JCOEF,WFAC,JWFAC,N,X,Y)} \\ {\tt CALL SUBQLT (COEF,JCOEF,WFAC,JWFAC,N,X,Y)} \\ {\tt CALL SUBQRT (COEF,JCOEF,WFAC,JWFAC,N,X,Y)} \\ {\tt CALL SUBQ (COEF,JCOEF,WFAC,JWFAC,N,U,RHS,UNEW)} \\ {\tt CALL COPY (COEF,JCOEF,WFAC,JWFAC,N,X,Y)} \\ {\tt CALL SUBADP (COEF,JCOEF,WFAC,JWFAC,N,P,R,PDP,PLDUP)} \\ \\ {\tt LOGICAL OMGADP} \\ {\tt COMMON / ITCOM5 / OMGADP, OMEGA, ALPHAB, BETAB, FFF, SPECR} \end{tabular} \bigskip \noindent {\bf Calls to Coloring Routines} \bigskip \begin{tabular}{l} {\tt CALL REDBLK (NDIM,N,MAXNZ,COEF,JCOEF,P,IP,NSTORE,IWKSP,IER)} \\ {\tt CALL COLOR (NXP,NYP,NZP,NX,NY,NZ,PATT,P)} \end{tabular} \newpage \noindent {\bf Parameter Definitions} \bigskip \begin{tabular}{ll} $\la$~{\em precon}~$\ra$ & preconditioning routine \\ $\la$~{\em accel}~$\ra$ & acceleration routine \\ NDIM & row dimension of COEF array \\ MDIM & column dimension of COEF array \\ N & order of the linear system \\ MAXNZ & active column width of COEF array \\ COEF & matrix nonzero coefficients \\ JCOEF & auxiliary matrix nonzero information \\ P & optional permutation vector \\ IP & inverse permutation vector \\ U & solution vector \\ UBAR & optional true solution \\ RHS & right hand side \\ WKSP & real workspace \\ IWKSP & integer workspace \\ NW & length of WKSP \\ INW & length of IWKSP \end{tabular} \begin{tabular}{ll} IPARM & integer parameters \\ RPARM & real parameters \\ IER & error flag \\ & \\ WFAC & real factorization workspace \\ JWFAC & integer factorization workspace \\ X & input vector \\ Y & output vector \\ & \\ NXP,NYP,NZP & dimensions of pattern \\ NX,NY,NZ & dimensions of grid \\ PATT & pattern \\ & \\ P & CG direction vector \\ R & real workspace length N \\ PDP & $(p,Dp)$ where $A=D-C_L-C_U$ \\ PLDUP & $(p,C_LD^{-1}C_Up)$. \end{tabular} \bigskip \noindent {\bf Preconditioners} \bigskip \begin{tabular}{lll} RICH$i$ & Richardson's method & $(i=1,2,3,4,5)$ \\ JAC$i$ & Jacobi method & $(i=1,2,3,4,5)$ \\ LJAC$i$ & Line Jacobi method & $(i=2,3)$ \\ LJACX$i$ & Line Jacobi method (approx. inverse) & $(i=2,3)$ \\ SOR$i$ & Successive Overrelaxation & $(i=1,2,3,6,7)$ \\ SSOR$i$ & Symmetric SOR & $(i=1,2,3,6,7)$ \\ IC$i$ & Incomplete Cholesky & $(i=1,2,3,6)$ \\ & (Note: IC7 = BIC7 or BICX7) & \\ MIC$i$ & Modified Incomplete Cholesky & $(i=1,2,3,6)$ \\ & (Note: MIC7 = MBIC7 or MBICX7) & \\ LSP$i$ & Least Squares Polynomial & $(i=1,2,3,4,5)$ \\ NEU$i$ & Neumann Polynomial & $(i=1,2,3,4,5)$ \\ LSOR$i$ & Line SOR & $(i=2,3)$ \\ LSSOR$i$ & Line SSOR & $(i=2,3)$ \\ LLSP$i$ & Line Least Squares Polynomial & $(i=2,3)$ \\ LNEU$i$ & Line Neumann Polynomial & $(i=2,3)$ \\ BIC$i$ & Block Incomplete Cholesky (ver. 1) & $(i=2,3,7)$ \\ BICX$i$ & Block Incomplete Cholesky (ver. 2) & $(i=2,3,7)$ \\ MBIC$i$ & Modified Block Incomplete Cholesky (ver. 1) & $(i=2,3,7)$ \\ MBICX$i$ & Modified Block Incomplete Cholesky (ver. 2) & $(i=2,3,7)$ \\ RS$i$ & Reduced System Method & $(i=6,7)$ \end{tabular} \bigskip \begin{tabular}{rl} $i = 1$ & primary storage format \\ $ = 2$ & symmetric diagonal storage \\ $ = 3$ & nonsymmetric diagonal storage \\ $ = 4$ & symmetric coordinate storage \\ $ = 5$ & nonsymmetric coordinate storage \\ $ = 6$ & permuted primary storage format \\ $ = 7$ & permuted diagonal storage (symmetric or nonsymmetric) \end{tabular} \newpage \noindent {\bf Stopping Tests Associated with NTEST} \bigskip \[ \begin{array}{ll} (1) & {\displaystyle \frac{\mbox{EMAX}}{\mbox{EMIN}} \lb \frac {\la r^{(n)},\tilde z^{(n)}\ra } {\la b,Q^{-1}b \ra} \rb ^\ha < \zeta } \\ (2) & {\displaystyle \frac{1}{\mbox{EMIN}} \lb \frac {\la \tilde z^{(n)},\tilde z^{(n)}\ra } {\la u^{(n)},u^{(n)}\ra } \rb ^\ha < \zeta } \\ (3) & {\displaystyle \frac{\mbox{EMAX}}{\mbox{EMIN}} \lb \frac {\la \tilde z^{(n)},\tilde z^{(n)}\ra} {\la Q^{-1}b,Q^{-1}b\ra } \rb ^\ha < \zeta } \\ (4) & {\displaystyle \lb \frac{\la \tilde z^{(n)},\tilde z^{(n)}\ra } {\la Q^{-1}b,Q^{-1}b\ra } \rb ^\ha < \zeta } \\ (5) & {\displaystyle \lb \frac{\la r^{(n)},r^{(n)}\ra} {\la b,b \ra } \rb ^\ha < \zeta } \end{array} \begin{array}{ll} (6) & {\displaystyle \lb \frac{\la u^{(n)}-\bar{u},u^{(n)}-\bar{u} \ra } {\la \bar{u},\bar{u} \ra } \rb^\ha < \zeta } \\ (7) & {\displaystyle \frac{\mbox{EMAX}}{\mbox{EMIN}} \lb \frac {\la r^{(n)},z^{(n)}\ra } {\la b,Q_L^{-1}b \ra} \rb ^\ha < \zeta } \\ (8) & {\displaystyle \frac{1}{\mbox{EMIN}} \lb \frac {\la z^{(n)},z^{(n)}\ra } {\la u^{(n)},u^{(n)}\ra } \rb ^\ha < \zeta } \\ (9) & {\displaystyle \frac{\mbox{EMAX}}{\mbox{EMIN}} \lb \frac {\la z^{(n)},z^{(n)}\ra} {\la Q_L^{-1}b,Q_L^{-1}b\ra } \rb ^\ha < \zeta } \\ (10) & {\displaystyle \lb \frac{\la z^{(n)},z^{(n)}\ra } {\la Q_L^{-1}b,Q_L^{-1}b\ra } \rb ^\ha < \zeta } \end{array} \] \bigskip \noindent {\bf IER Error Codes} \bigskip \begin{tabular}{|c|p{3.5in}|} \hline IER & Meaning \\ \hline $0$ & No error detected \\ \hline $-1$ & Nonpositive matrix size N \\ $-2$ & Insufficient real workspace \\ $-3$ & Insufficient integer workspace \\ $-4$ & Nonpositive diagonal element \\ $-5$ & Nonexistent diagonal element \\ $-6$ & $A$ is not positive definite \\ $-7$ & $Q$ is not positive definite \\ $-8$ & Cannot permute matrix as requested \\ $-9$ & MDIM is not large enough to allow expansion of matrix \\ $-10$ & Inadmissible parameter encountered \\ $-11$ & Incorrect storage mode for block method \\ $-12$ & Zero pivot encountered in factorization \\ $-13$ & Breakdown in direction vector calculation \\ $-14$ & Breakdown in attempt to perform rotation \\ $-15$ & Breakdown in iterate calculation \\ $-16$ & Unimplemented combination of parameters \\ $-18$ & Unable to perform eigenvalue estimation \\ \hline $1$ & Failure to converge in ITMAX iterations \\ $2$ & ZETA too small -- reset to $500*$SRELPR \\ $3$ & ZBRENT failed to converge in MAXFN iterations (signifies difficulty in eigenvalue estimation) \\ $4$ & In ZBRENT, $f(a)$ and $f(b)$ have the same sign (signifies difficulty in eigenvalue estimation) \\ $5$ & Negative pivot encountered in factorization \\ \hline \end{tabular} \newpage \begin{center} {\bf Defaults for IPARM and RPARM Parameters} \bigskip \begin{tabular}{|l|l|c|} \hline Position & Name & Default \\ \hline IPARM(1) & NTEST & $2$ \\ \hline IPARM(2) & ITMAX & $100$ \\ \hline IPARM(3) & LEVEL & $0$ \\ \hline IPARM(4) & NOUT & $6$ \\ \hline IPARM(5) & IDGTS & $0$ \\ \hline IPARM(6) & MAXADP & $1$ \\ \hline IPARM(7) & MINADP & $1$ \\ \hline IPARM(8) & IOMGAD & $1$ \\ \hline IPARM(9) & NS1 & $5$ \\ \hline IPARM(10) & NS2 & $100000$ \\ \hline IPARM(11) & NS3 & $0$ \\ \hline IPARM(12) & NSTORE & $2$ \\ \hline IPARM(13) & ISCALE & $0$ \\ \hline IPARM(14) & IPERM & $0$ \\ \hline IPARM(15) & IFACT & $1$ \\ \hline IPARM(16) & LVFILL & $0$ \\ \hline IPARM(17) & LTRUNC & $0$ \\ \hline IPARM(18) & IPROPA & $2$ \\ \hline IPARM(19) & KBLSZ & $-1$ \\ \hline IPARM(20) & NBL2D & $-1$ \\ \hline IPARM(21) & IFCTV & $1$ \\ \hline IPARM(22) & IQLR & $1$ \\ \hline IPARM(23) & ISYMM & $2$ \\ \hline IPARM(24) & IELIM & $0$ \\ \hline IPARM(25) & NDEG & $1$ \\ \hline \end{tabular} \hspace*{0.5in} \begin{tabular}{|l|l|c|} \hline Position & Name & Default \\ \hline RPARM(1) & ZETA & $10^{-6}$ \\ \hline RPARM(2) & EMAX & $2.0$ \\ \hline RPARM(3) & EMIN & $1.0$ \\ \hline RPARM(4) & FF & $0.75$ \\ \hline RPARM(5) & FFF & $0.75$ \\ \hline RPARM(6) & TIMIT & $0.0$ \\ \hline RPARM(7) & DIGIT1 & $0.0$ \\ \hline RPARM(8) & DIGIT2 & $0.0$ \\ \hline RPARM(9) & OMEGA & $1.0$ \\ \hline RPARM(10) & ALPHAB & $0.0$ \\ \hline RPARM(11) & BETAB & $0.25$ \\ \hline RPARM(12) & SPECR & $0.0$ \\ \hline RPARM(13) & TIMFAC & $0.0$ \\ \hline RPARM(14) & TIMTOT & $0.0$ \\ \hline RPARM(15) & TOL & $500*\mbox{SRELPR}$ \\ \hline RPARM(16) & AINF & $0.0$ \\ \hline \end{tabular} \end{center} \end{document} .