Data Type

Integer

Default Value

1 for sparse matrices
2 for full matrices.

Description

This parameter controls how the matrix [A] is stored and processed. The following options are available:

Profile Matrix MFMAT=1: Profile Solver
Accounts for the sparsity of matrix [A] on an equation by equation basis. Typical applications include finite element and finite difference programs. This is the default for sparse matrices.
Block Matrix MFMAT=2: Block Solver
Divides the matrix [A] into square blocks, accounting for sparsity on a block by block basis. This solver uses industry standard BLAS3 kernels and provides excellent I/O performance on extremely large problems. Typical applications include boundary integral and moment method programs. This is the default for full matrices.
Slab Matrix MFMAT=3: Slab Solver
Extends the functionality of the Block Solver by providing full column partial pivoting for full nonsymmetric matrices. You must explicitly set MFMAT to select this option.

FMS stores the matrix data on three separate files:

For nonsymmetric problems FMS assumes that the sparsity of the matrix is symmetric but the values are not. This allows FMS to use a single set of pointers to address the matrix elements in the lower triangle [AL] and upper triangle [AU]. Data in the upper triangle is always stored in a transposed direction from data in the lower triangle. For example if the FMS parameter IJSTEP is one, the data in [AL] will be stored by rows and the data in [AU] will be stored by columns. Note that if a symmetric matrix was processed as nonsymmetric, the files LUA(1) and LUA(3) would be identical.

FMS uses a single vector {LOWEQ} to describe the sparsity of the matrix. This vector contains the lowest coupled equation for each equation. For terms in the lower triangle [AL] this is the first non-zero term of each row, proceeding from the left edge of the matrix toward the diagonal. For terms in the upper triangle [AU] this is the first non-zero term of each column, proceeding from the top of the matrix toward the diagonal. Because FMS uses symmetric storage, the same profile vector {LOWEQ} describes both the sparsity of [AL] and [AU]. Note that for a full matrix, the profile vector {LOWEQ} would contain all 1's.