hypre/FEI_matrix_vector/fei-isis
1999-07-14 20:14:46 +00:00
..
fei-drivers *** empty log message *** 1999-07-14 20:14:45 +00:00
lib *** empty log message *** 1999-07-14 20:14:45 +00:00
other *** empty log message *** 1999-07-14 20:14:45 +00:00
src *** empty log message *** 1999-07-14 20:14:46 +00:00
util *** empty log message *** 1999-07-14 20:14:46 +00:00
cfei-isis.h *** empty log message *** 1999-07-14 20:14:43 +00:00
configure *** empty log message *** 1999-07-14 20:14:43 +00:00
fei-isis.h *** empty log message *** 1999-07-14 20:14:43 +00:00
fei.h *** empty log message *** 1999-07-14 20:14:43 +00:00
make.options *** empty log message *** 1999-07-14 20:14:43 +00:00
Makefile *** empty log message *** 1999-07-14 20:14:43 +00:00
Makefile.depends *** empty log message *** 1999-07-14 20:14:43 +00:00
README.fei-usage *** empty log message *** 1999-07-14 20:14:43 +00:00
README.parameters *** empty log message *** 1999-07-14 20:14:43 +00:00

This README file describes the parameters mechanism for controlling the
linear solver underlying the finite element interface.

In general, the parameters mechanism accepts a collection of strings
in the style of the "argc" and "argv" parameters for C programs.

The ISIS++ fei implementation currently accepts the following
parameter-names, and corresponding values:

parameter-name              value
---------------------------------
solver                      cg
                            cgs
                            bicgstab
                            qmr
                            gmres
                            fgmres
                            defgmres

preconditioner              identity    (no preconditioning)
                            diagonal    (point-wise diagonal scaling)
                            polynomial  (neumann or least-squares polynomial)
                            bj          (block-jacobi)

rowScale                    true  (turns on row-wise scaling of the matrix)
                            false (      off                              )

colScale                    true  (turns on column-wise scaling of the matrix)
                            false (      off                                 )


When the FEI function iterateToSolve is called to launch the iterative
solver, the user-supplied parameters are also passed on to the solver
and preconditioner being used. The valid values vary to some extent
from one solver to another, but all ISIS++ solvers accept the
parameters:

maxIterations          (value should be some integer)
tolerance              (some floating-point number, like 1.e-10)

Parameters to particular preconditioners and solvers in ISIS++ include the
following:

*************************
Polynomial preconditioner

parameter-name    value
------------------------
polyType           1           (Neumann polynomial)
polyType           2           (Least Squares polynomial)
polyOrder          <n>         (Order or degree of the polynomial)

***************************
Block Jacobi preconditioner

parameter-name    value
------------------------
blockSize         <n>        (Size of diagonal blocks to be inverted)
blockType          1         (Non-overlapping blocks)
blockType          2         (Overlapping blocks, but not across
                              processor boundaries.)

*************************
All GMRES solver variants

parameter-name    value
------------------------
restart           <n>       (Size of the Krylov subspace between restarts)


Note: additional ISIS++ solvers and preconditioners to be added:

Other ISIS++ solvers and preconditioners which are not yet supported
through the FEI include:

Krylov solvers:
    CGNE
    CGNR

Preconditioners:
    CGNE_Diagonal
    CGNE_BlockJacobi
    CGNE_Polynomial
    CGNR_Polynomial
    SPAI  (Sparse Approximate Inverse)
          (SPAI accepts several control parameters, to be
           documented here later.)

These will be enabled in an upcoming fei-isis code relese.

Additionally, if preconditioners from CASC (LLNL) are (separately)
installed, we will be able to turn on recognition of these preconditioners:

      SAILS
      PILUT
      AMGe

(the SAILS preconditioner is actually installed as part of the ISIS++ 
distribution, and can be enabled any time.)



(I'm putting together some actual FEI usage documentation, but it isn't
available yet.)

Alan Williams (william@ca.sandia.gov)