Skip to main content
`Ctrl`+`K`

# PCSetType

Builds `PC` for a particular preconditioner type

## Synopsis

    #include "petscpc.h"
    PetscErrorCode PCSetType(PC pc, PCType type)

Collective

## Input Parameters

- pc - the preconditioner context

- type - a known method, see `PCType` for possible values

## Options Database Key

- -pc_type - Sets `PC` type

## Notes

Normally, it is best to use the `KSPSetFromOptions()` command and then set the `PC` type from the options database rather than by using this routine. Using the options database provides the user with maximum flexibility in evaluating the many different preconditioners. The `PCSetType()` routine is provided for those situations where it is necessary to set the preconditioner independently of the command line or options database. This might be the case, for example, when the choice of preconditioner changes during the execution of the program, and the user’s application is taking responsibility for choosing the appropriate preconditioner.

## Developer Notes

`PCRegister()` is used to add preconditioner types to `PCList` from which they are accessed by `PCSetType()`.

## See Also

KSP: Linear System Solvers, `KSPSetType()`, `PCType`, `PCRegister()`, `PCCreate()`, `KSPGetPC()`

## Level

intermediate

## Location

src/ksp/pc/interface/pcset.c

## Examples

src/ksp/ksp/tutorials/ex53.c
src/ksp/ksp/tutorials/ex60.c
src/dm/impls/stag/tutorials/ex4.c
src/ksp/ksp/tutorials/ex12.c
src/dm/impls/stag/tutorials/ex2.c
src/dm/impls/stag/tutorials/ex3.c
src/ksp/ksp/tutorials/ex21.c
src/ksp/ksp/tutorials/ex64.c
src/dm/impls/stag/tutorials/ex1.c
src/ksp/ksp/tutorials/ex68.c

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