petsc-3.14.5 2021-03-03
Report Typos and Errors

# MatGetFactor

Returns a matrix suitable to calls to MatXXFactorSymbolic()

### Synopsis

    #include "petscmat.h"
    PetscErrorCode MatGetFactor(Mat mat, MatSolverType type,MatFactorType ftype,Mat *f)

Collective on Mat

### Input Parameters

| mat | - the matrix
| type | - name of solver type, for example, superlu, petsc (to use PETSc's default)
| ftype | - factor type, MAT_FACTOR_LU, MAT_FACTOR_CHOLESKY, MAT_FACTOR_ICC, MAT_FACTOR_ILU,

### Output Parameters

| f | - the factor matrix used with MatXXFactorSymbolic() calls

### Notes

Some PETSc matrix formats have alternative solvers available that are contained in alternative packages such as pastix, superlu, mumps etc.

PETSc must have been ./configure to use the external solver, using the option --download-package

### Developer Notes

This should actually be called MatCreateFactor() since it creates a new factor object

### See Also

MatCopy(), MatDuplicate(), MatGetFactorAvailable(), MatFactorGetUseOrdering(), MatSolverTypeRegister()

### Level

intermediate

### Location

src/mat/interface/matrix.c

### Examples

src/ksp/ksp/tutorials/ex52.c.html

### Implementations

MatGetFactor_aij_sparseelemental in src/mat/impls/aij/mpi/clique/clique.cxx
MatGetFactor_mpiaij_mkl_cpardiso in src/mat/impls/aij/mpi/mkl_cpardiso/mkl_cpardiso.c
MatGetFactor_aij_mumps in src/mat/impls/aij/mpi/mumps/mumps.c
MatGetFactor_sbaij_mumps in src/mat/impls/aij/mpi/mumps/mumps.c
MatGetFactor_baij_mumps in src/mat/impls/aij/mpi/mumps/mumps.c
MatGetFactor_sell_mumps in src/mat/impls/aij/mpi/mumps/mumps.c
MatGetFactor_seqaij_pastix in src/mat/impls/aij/mpi/pastix/pastix.c
MatGetFactor_mpiaij_pastix in src/mat/impls/aij/mpi/pastix/pastix.c
MatGetFactor_seqsbaij_pastix in src/mat/impls/aij/mpi/pastix/pastix.c
MatGetFactor_mpisbaij_pastix in src/mat/impls/aij/mpi/pastix/pastix.c
MatGetFactor_aij_strumpack in src/mat/impls/aij/mpi/strumpack/strumpack.c
MatGetFactor_aij_superlu_dist in src/mat/impls/aij/mpi/superlu_dist/superlu_dist.c
MatGetFactor_seqaij_petsc in src/mat/impls/aij/seq/aijfact.c
MatGetFactor_seqaij_bas in src/mat/impls/aij/seq/bas/basfactor.c
MatGetFactor_seqaij_cholmod in src/mat/impls/aij/seq/cholmod/aijcholmod.c
MatGetFactor_seqaij_essl in src/mat/impls/aij/seq/essl/essl.c
MatGetFactor_seqaij_klu in src/mat/impls/aij/seq/klu/klu.c
MatGetFactor_seqaij_lusol in src/mat/impls/aij/seq/lusol/lusol.c
MatGetFactor_seqaij_matlab in src/mat/impls/aij/seq/matlab/aijmatlab.c
MatGetFactor_aij_mkl_pardiso in src/mat/impls/aij/seq/mkl_pardiso/mkl_pardiso.c
MatGetFactor_seqaijcusparse_cusparse in src/mat/impls/aij/seq/seqcusparse/aijcusparse.cu
MatGetFactor_seqaij_superlu in src/mat/impls/aij/seq/superlu/superlu.c
MatGetFactor_seqsell_superlu in src/mat/impls/aij/seq/superlu/superlu.c
MatGetFactor_seqaij_umfpack in src/mat/impls/aij/seq/umfpack/umfpack.c
MatGetFactor_seqbaij_petsc in src/mat/impls/baij/seq/baijfact.c
MatGetFactor_constantdiagonal_petsc in src/mat/impls/cdiagonal/cdiagonal.c
MatGetFactor_seqdense_cuda in src/mat/impls/dense/seq/cuda/densecuda.cu
MatGetFactor_seqdense_petsc in src/mat/impls/dense/seq/dense.c
MatGetFactor_elemental_elemental in src/mat/impls/elemental/matelem.cxx
MatGetFactor_seqsbaij_cholmod in src/mat/impls/sbaij/seq/cholmod/sbaijcholmod.c
MatGetFactor_seqsbaij_petsc in src/mat/impls/sbaij/seq/sbaij.c
MatGetFactor_scalapack_scalapack in src/mat/impls/scalapack/matscalapack.c
Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages