             Interface for Interior Eigenvalue Calculation


This directory contains driver programs and interface routines
for compting interior eigenvalues of large sparse nonsymmetric
matrices.  The interface routines link ARPACK with SuperLU
to provide a simpler interface for users who have very little
experience in using either one of these two packages.


DRIVER PROGRAMS
---------------

1. Driver programs for standard eigenvalue problems

        sstdrv.f   (single precision)
        dstdrv.f   (double precision)
        cstdrv.f   (single complex)
        zstdrv.f   (double complex)


2. Dirver programs for generalized eigenvalue problems


        sgedrv.f   (single precision)
        dgedrv.f   (double precision)
        cgedrv.f   (single complex)
        zgedrv.f   (double complex)

COMPILE and RUN
---------------

To compile the driver programs, one must do the following:

1. Download and build ARPACK library. ARPACK can be obtained from

      http://www.caam.rice.edu/software/ARPACK/

   Make sure both arpack96.tar.gz and patch.tar.gz are downloaded
   and unbundled.

2. Download and build SuperLU library. SuperLU can be obtained from
   
      http://www.cs.berkeley.edu/~demmel/SuperLU.html

   Make sure the following objects are included in the SuperLU library.

      [s,d,c,z]myblas2.o

3. Modify the Makefile included in this directory to set appropriate
   compiler commands and options, the path for ARPACK, SuperLU, BLAS and
   LAPACK libraries.

4. Simply type, for example, 

      make sstdrv 

   to generate an executable.

5. To run the programs, simply type, for example

      sstdrv

DATA SET
--------

Two test data sets are included in this directory for testing.  

For standard eigenvalue problem, the driver programs read in 
a nonsymmetric sparse matrix stored in the file 'pde.rua'.  

For generalized eigenvalue problem, the driver programs read in
two nonsymmetric sparse matrices 'bfw62a.rua' and 'bfw62b.rua'.

All matrices are stored in standard compressed column (Harwell-Boeing) format.


INTERFACE ROUTINES
------------------

The driver routines call the following interface routines to
compute eigenvalues and eigenvectors.

1. Standard eigenvalue problems

        sspstev.c  (single precision)
        dspstev.c  (double precision)
        cspstev.c  (single complex)
        dspstev.c  (double complex)

2. Generalized eigenvalue problems

        sgestev.c  (single precision)
        dgestev.c  (double precision)
        cgestev.c  (single complex)
        dgestev.c  (double complex)

OTHER UTILITY ROUTINES
----------------------

There is a number of other utility routines in this directory
to perform, for example, sparse matrix-vector multiplication etc.

A number of SuperLU include files are used here also.

If you have questions on using these, contact

Chao Yang
Computer Science and Mathematics Division
Oak Ridge National Laboratory
P.O. Box 2008, MS-6367 
Oak Ridge, TN 37381-6367
(865)574-1072
chao@msr.epm.ornl.gov
