Skip to main content
`Ctrl`+`K`

# PCFactorSetUseInPlace

Tells the preconditioner to do an in-place factorization.

## Synopsis

    #include "petscpc.h"
    PetscErrorCode PCFactorSetUseInPlace(PC pc, PetscBool flg)

Logically Collective

## Input Parameters

- pc - the preconditioner context

- flg - `PETSC_TRUE` to enable, `PETSC_FALSE` to disable

## Options Database Key

- -pc_factor_in_place (true|false) - Activate/deactivate in-place factorization

## Note

For dense matrices, this enables the solution of much larger problems. For sparse matrices the factorization cannot be done truly in-place so this does not save memory during the factorization, but after the matrix is factored, the original unfactored matrix is freed, thus recovering that space. For ICC(0) and ILU(0) with the default natural ordering the factorization is done efficiently in-place.

`PCFactorSetUseInplace()` can only be used with the `KSP` method `KSPPREONLY` or when a different matrix is provided for the multiply and the preconditioner in a call to `KSPSetOperators()`. This is because the Krylov space methods require an application of the matrix multiplication, which is not possible here because the matrix has been factored in-place, replacing the original matrix.

## See Also

KSP: Linear System Solvers, `PC`, `Mat`, `PCLU`, `PCCHOLESKY`, `PCILU`, `PCICC`, `PCFactorGetUseInPlace()`

## Level

intermediate

## Location

src/ksp/pc/impls/factor/factor.c

## Implementations

PCFactorSetUseInPlace_Factor() in src/ksp/pc/impls/factor/factor.c

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