This directory src/contrib/spai contains code to interface PETSc to the Sparse Approximate Inverse Preconditioner (SPAI) implemented by Steven Bernard and available at http://www.sam.math.ethz.ch/~grote/spai/ To use this, you must first get and install the SPAI package. Unfortunately, SPAI does not come ready to compile into a library and is not portable to most Unix machines; though it does say it compiles on both the IBM SP and Cray T3D, you may have to hack it slightly for other machines. Once you have created the spai_3.0 directory from the tar file. 1) Compile all the .o files in the spai_3.0 directory. You will probably have to edit the Makefile and then run make spai 2) Create a library with the command ar cr libspai.a *.o 3) On machines that require it, run ranlib on the library ranlib libspai.a 4) Edit the PETSc file bmake/$PETSC_ARCH/base.site and indicate the location of the SPAI directory 5) Cd to src/contrib/pc/spai/src and do make BOPT=g and make BOPT=O 7) You are now ready to run an example, cd to src/contrib/pc/spai/examples/ tutorials and make ex1 in the usual PETSc way. You can run it using any of the test matrices in src/mat/examples/matrices If you have problems compiling SPAI please contact Steven Bernard directly. If you have problems linking PETSc with SPAI or running the examples then after checking the docs/troubleshooting.html and docs/bugreporting.html file contact petsc-maint@mcs.anl.gov This contribution has not been extensively tested or optimized for performance yet.