PETSc version 3.16.5
Fix/Edit manual page

# PCSHELL

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

### Usage

                extern PetscErrorCode apply(PC,Vec,Vec);

                extern PetscErrorCode applyba(PC,PCSide,Vec,Vec,Vec);

                extern PetscErrorCode applytranspose(PC,Vec,Vec);

                extern PetscErrorCode setup(PC);

                extern PetscErrorCode destroy(PC);

                PCCreate(comm,&pc);

                PCSetType(pc,PCSHELL);

                PCShellSetContext(pc,ctx)

                PCShellSetApply(pc,apply);

                PCShellSetApplyBA(pc,applyba);               (optional)

                PCShellSetApplyTranspose(pc,applytranspose); (optional)

                PCShellSetSetUp(pc,setup);                   (optional)

                PCShellSetDestroy(pc,destroy);               (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

### Examples

src/ksp/ksp/tutorials/ex15.c.html
src/ksp/ksp/tutorials/ex15f.F90.html
src/snes/tutorials/ex3.c.html
src/tao/pde_constrained/tutorials/parabolic.c.html
src/tao/pde_constrained/tutorials/hyperbolic.c.html
Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages