This README file describes the parameters mechanism for controlling the
fei-isis implementation of the finite element interface (FEI).
In general, the parameters mechanism accepts a collection of strings
in the style of the "argc" and "argv" parameters for C programs.
These strings are always of the form "parameter-name parameter-value"
(i.e., separated by a space.)
The ISIS++ fei implementation currently accepts the following
parameter-names, and corresponding values:
parameter-name value
---------------------------------
outputLevel 0 (no screen output)
1 (iteration numbers, residual norms)
2 (lots of screen output)
debugOutput <path> (<path> is the location in which to
dump trace-type debugging output files.
This also causes the assembled matrix
to be dumped out (in A_ISIS.mtx....).
i.e., dumpMatrix below is also set.)
dumpMatrix <path> (<path> is the location in which to
dump the matrix and vector files. Use this
option if you want to dump the matrix files
but don't want to dump the debugOutput
files above. (The debugOutput files can be
very large, and there's a file for each
processor.))
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)
spai (sparse approximate inverse)
(SPAI accepts several control
parameters, to be documented here
soon.)
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 these
parameters:
maxIterations n (value should be some integer)
tolerance tol (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
These will be enabled in an upcoming fei-isis code relese.
(I'll be putting together some actual FEI usage documentation, but it isn't
available yet.)
Alan Williams (william@ca.sandia.gov)