# MATAIJSPOOLES

MATAIJSPOOLES = "aijspooles" - A matrix type providing direct solvers (LU or Cholesky) for sequential and parellel matrices via the external package SPOOLES. If SPOOLES is installed (see the manual for instructions on how to declare the existence of external packages), a matrix type can be constructed which invokes SPOOLES solvers. After calling MatCreate(...,A), simply call MatSetType(A,MATAIJSPOOLES). This matrix type is supported for double precision real and complex.

This matrix inherits from MATAIJ. As a result, MatSeqAIJSetPreallocation and MatMPIAIJSetPreallocation are supported for this matrix type. One can also call MatConvert for an inplace conversion to or from the MATAIJ type without data copy.

### Options Database Keys

| -mat_type aijspooles | - sets the matrix type to "aijspooles" during a call to MatSetFromOptions()
| -mat_spooles_tau <tau> | - upper bound on the magnitude of the largest element in L or U
| -mat_spooles_seed <seed> | - random number seed used for ordering
| -mat_spooles_msglvl <msglvl> | - message output level
| -mat_spooles_ordering <BestOfNDandMS,MMD,MS,ND> | - ordering used
| -mat_spooles_maxdomainsize <n> | - maximum subgraph size used by Spooles orderings
| -mat_spooles_maxzeros <n> | - maximum number of zeros inside a supernode
| -mat_spooles_maxsize <n> | - maximum size of a supernode
| -mat_spooles_FrontMtxInfo <true,fase> | - print Spooles information about the computed factorization
| -mat_spooles_symmetryflag <0,1,2> | - 0: SPOOLES_SYMMETRIC, 1: SPOOLES_HERMITIAN, 2: SPOOLES_NONSYMMETRIC
| -mat_spooles_patchAndGoFlag <0,1,2> | - 0: no patch, 1: use PatchAndGo strategy 1, 2: use PatchAndGo strategy 2
| -mat_spooles_toosmall <dt> | - drop tolerance for PatchAndGo strategy 1
| -mat_spooles_storeids <bool integer> | - if nonzero, stores row and col numbers where patches were applied in an IV object
| -mat_spooles_fudge <delta> | - fudge factor for rescaling diagonals with PatchAndGo strategy 2
| -mat_spooles_storevalues <bool integer> | - if nonzero and PatchAndGo strategy 2 is used, store change in diagonal value in a DV object

### See Also

PCLU

Level:beginner
Location: src/mat/impls/aij/seq/spooles/spooles.c
Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages