# PCSHELL

Creates a new preconditioner class for use with your own private data storage format.

### Usage

                PetscErrorCode (*mult)(void*,Vec,Vec);

                PetscErrorCode (*setup)(void*);

                PCCreate(comm,&pc);

                PCSetType(pc,PCSHELL);

                PCShellSetApply(pc,mult);

                PCShellSetApplyBA(pc,mult);      (optional)

                PCShellSetApplyTranspose(pc,mult); (optional)

                PCShellSetContext(pc,ctx)

                PCShellSetSetUp(pc,setup);       (optional)

### See Also

PCCreate(), PCSetType(), PCType (for list of available types), PC,
MATSHELL, PCShellSetSetUp(), PCShellSetApply(), PCShellSetView(), PCShellSetApplyTranspose(), PCShellSetName(), PCShellSetApplyRichardson(), PCShellGetName(), PCShellSetContext(), PCShellGetContext(), PCShellSetApplyBA()

Level:advanced
Location: src/ksp/pc/impls/shell/shellpc.c
Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages

### Examples

src/ksp/ksp/examples/tutorials/ex15.c.html
src/ksp/ksp/examples/tutorials/ex15f.F.html
src/ksp/ksp/examples/tutorials/ex21f.F.html
src/snes/examples/tutorials/ex6.c.html
src/snes/examples/tutorials/ex24.c.html