Skip to main content
`Ctrl`+`K`

# MATSOLVERSUPERLU_DIST

Parallel direct solver package for LU factorization Use `./configure --download-superlu_dist --download-parmetis --download-metis --download-ptscotch` to have PETSc installed with SuperLU_DIST

Use `-pc_type lu` `-pc_factor_mat_solver_type superlu_dist` to use this direct solver

Works with `MATAIJ` matrices

## Options Database Keys

- -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_3d - use 3d partition, requires SuperLU_DIST 7.2 or later

- -mat_superlu_dist_d <n> - depth in 3d partition (valid only if `-mat_superlu_dist_3d`) is provided

- -mat_superlu_dist_equil - equilibrate the matrix

- -mat_superlu_dist_rowperm <NOROWPERM,LargeDiag_MC64,LargeDiag_AWPM,MY_PERMR> - row permutation

- -mat_superlu_dist_colperm <NATURAL,MMD_AT_PLUS_A,MMD_ATA,METIS_AT_PLUS_A,PARMETIS> - column permutation

- -mat_superlu_dist_replacetinypivot - replace tiny pivots

- -mat_superlu_dist_fact <SamePattern> - (choose one of) `SamePattern`, `SamePattern_SameRowPerm`, `DOFACT`

- -mat_superlu_dist_iterrefine - use iterative refinement

- -mat_superlu_dist_printstat - print factorization information

- -mat_superlu_dist_gpuoffload - offload factorization onto the GPUs, requires SuperLU_DIST 8.0.0 or later

- -pc_precision single - use SuperLU_DIST single precision with PETSc double precision

## Note

If PETSc was configured with `--with-cuda` then this solver will use the GPUs by default.

## See Also

Matrices, `Mat`, `PCLU`, `PCFactorSetMatSolverType()`, `MatSolverType`, `MatGetFactor()`

## Level

beginner

## Location

src/mat/impls/aij/mpi/superlu_dist/superlu_dist.c

## Examples

src/ksp/ksp/tutorials/ex52.c

Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages