PETSc version 3.15.5
Fix/Edit manual page

# MatGetOperation

Gets a matrix operation for any matrix type.

### Synopsis

    #include "petscmat.h"
    PetscErrorCode MatGetOperation(Mat mat,MatOperation op,void(**f)(void))

Not Collective

### Input Parameters

| mat | - the matrix
| op | - the name of the operation

### Output Parameter

| f | - the function that provides the operation

### Usage

         PetscErrorCode (*usermult)(Mat,Vec,Vec);

         ierr = MatGetOperation(A,MATOP_MULT,(void(**)(void))&usermult);

### Notes

See the file include/petscmat.h for a complete list of matrix operations, which all have the form MATOP_<OPERATION>, where <OPERATION> is the name (in all capital letters) of the user interface routine (e.g., MatMult() -> MATOP_MULT).

This routine is distinct from MatShellGetOperation() in that it can be called on any matrix type.

### See Also

MatSetOperation(), MatCreateShell(), MatShellGetContext(), MatShellGetOperation()

### Level

developer

### Location

src/mat/interface/matrix.c

### Examples

src/ksp/ksp/tutorials/ex29.c.html
src/ksp/ksp/tutorials/ex34.c.html
Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages