# MATSUPERLU_DIST

MATSUPERLU_DIST = "superlu_dist" - A matrix type providing direct solvers (LU) for parallel matrices via the external package SuperLU_DIST. If SuperLU_DIST is installed (see the manual for instructions on how to declare the existence of external packages), a matrix type can be constructed which invokes SuperLU_DIST solvers. After calling MatCreate(...,A), simply call MatSetType(A,MATSUPERLU_DIST).

This matrix inherits from MATSEQAIJ when constructed with a single process communicator, and from MATMPIAIJ otherwise. As a result, for single process communicators, MatSeqAIJSetPreallocation is supported, and similarly MatMPIAIJSetPreallocation is supported for communicators controlling multiple processes. It is recommended that you call both of the above preallocation routines for simplicity. One can also call MatConvert for an inplace conversion to or from the MATSEQAIJ or MATMPIAIJ type (depending on the communicator size) without data copy.

### Options Database Keys

| -mat_type superlu_dist | - sets the matrix type to "superlu_dist" during a call to MatSetFromOptions()
| -mat_superlu_dist_r <n> | - number of rows in processor partition
| -mat_superlu_dist_c <n> | - number of columns in processor partition
| -mat_superlu_dist_matinput <0,1> | - matrix input mode; 0=global, 1=distributed
| -mat_superlu_dist_equil | - equilibrate the matrix
| -mat_superlu_dist_rowperm <LargeDiag,NATURAL> | - row permutation
| -mat_superlu_dist_colperm <MMD_AT_PLUS_A,MMD_ATA,COLAMD,NATURAL> | - column permutation
| -mat_superlu_dist_replacetinypivot | - replace tiny pivots
| -mat_superlu_dist_iterrefine | - use iterative refinement
| -mat_superlu_dist_statprint | - print factorization information

### See Also

PCLU

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