Skip to main content
`Ctrl`+`K`

# MatSetUnfactored

Resets a factored matrix to be treated as unfactored.

## Synopsis

    #include "petscmat.h"
    PetscErrorCode MatSetUnfactored(Mat mat)

Logically Collective

## Input Parameter

- mat - the factored matrix to be reset

## Notes

This routine should be used only with factored matrices formed by in-place factorization via ILU(0) (or by in-place LU factorization for the `MATSEQDENSE` format). This option can save memory, for example, when solving nonlinear systems with a matrix-free Newton-Krylov method and a matrix-based, in-place ILU(0) preconditioner.

One can specify in-place ILU(0) factorization by calling

         PCType(pc,PCILU);
         PCFactorSeUseInPlace(pc);

or by using the options -pc_type ilu -pc_factor_in_place

In-place factorization ILU(0) can also be used as a local solver for the blocks within the block Jacobi or additive Schwarz methods (runtime option: -sub_pc_factor_in_place). See Users-Manual: ch_pc for details on setting local solver options.

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()`.

## See Also

Matrices, `Mat`, `PCFactorSetUseInPlace()`, `PCFactorGetUseInPlace()`

## Level

developer

## Location

src/mat/interface/matrix.c

## Implementations

MatSetUnfactored_MPIAIJ() in src/mat/impls/aij/mpi/mpiaij.c
MatSetUnfactored_MPIBAIJ() in src/mat/impls/baij/mpi/mpibaij.c
MatSetUnfactored_MPISBAIJ() in src/mat/impls/sbaij/mpi/mpisbaij.c
MatSetUnfactored_MPISELL() in src/mat/impls/sell/mpi/mpisell.c

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