MatILUFactor#

Performs in-place ILU factorization of matrix.

Synopsis#

#include "petscmat.h" 
PetscErrorCode MatILUFactor(Mat mat, IS row, IS col, const MatFactorInfo *info)

Collective

Input Parameters#

  • mat - the matrix

  • row - row permutation

  • col - column permutation

  • info - structure containing

      levels - number of levels of fill.
      expected fill - as ratio of original fill.
      1 or 0 - indicating force fill on diagonal (improves robustness for matrices
                missing diagonal entries)

Notes#

Most users should employ the KSP interface for linear solvers instead of working directly with matrix algebra routines such as this. See, e.g., KSPCreate().

Probably really in-place only when level of fill is zero, otherwise allocates new space to store factored matrix and deletes previous memory. The preferred approach is to use MatGetFactor(), MatILUFactorSymbolic(), and MatILUFactorNumeric() when not using KSP.

Developer Note#

The Fortran interface is not autogenerated as the interface definition cannot be generated correctly [due to MatFactorInfo]

See Also#

Matrices, Mat, Matrix Factorization, MatILUFactorSymbolic(), MatLUFactorNumeric(), MatCholeskyFactor(), MatFactorInfo

Level#

developer

Location#

src/mat/interface/matrix.c

Implementations#

MatILUFactor_SeqAIJ in src/mat/impls/aij/seq/aij.c
MatILUFactor_SeqBAIJ in src/mat/impls/baij/seq/baij.c


Edit on GitLab

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