Skip to main content
`Ctrl`+`K`

# MATSHELL

MATSHELL = “shell” - A matrix type to be used to define your own matrix type with its own data structure – perhaps matrix-free.

## Notes

See `MatCreateShell()` for details on the usage of `MATSHELL`

`PCSHELL` can be used in conjunction with `MATSHELL` to provide a custom preconditioner appropriate for your `MATSHELL`. Since many standard preconditioners such as `PCILU` depend on having an explicit representation of the matrix entries they cannot be used directly with `MATSHELL`.

## See Also

Matrices, `Mat`, `MatCreateShell()`, `PCSHELL`

## Level

advanced

## Location

src/mat/impls/shell/shell.c

## Examples

src/snes/tutorials/ex12.c
src/tao/leastsquares/tutorials/tomography.c
src/ts/tutorials/ex50.c

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