MatSetOperation#
Allows user to set a matrix operation for any matrix type
Synopsis#
#include "petscmat.h"
PetscErrorCode MatSetOperation(Mat mat, MatOperation op, void (*f)(void))
Logically Collective
Input Parameters#
mat - the matrix
op - the name of the operation
f - the function that provides the operation
Usage#
extern PetscErrorCode usermult(Mat,Vec,Vec);
PetscCall(MatCreateXXX(comm,...&A);
PetscCall(MatSetOperation(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_
All user-provided functions (except for MATOP_DESTROY
) should have the same calling
sequence as the usual matrix interface routines, since they
are intended to be accessed via the usual matrix interface
routines, e.g.,
In particular each function MUST return an error code of 0 on success and nonzero on failure.
This routine is distinct from MatShellSetOperation()
in that it can be called on any matrix type.
See Also#
MatGetOperation()
, MatCreateShell()
, MatShellSetContext()
, MatShellSetOperation()
Level#
developer
Location#
Examples#
src/ksp/ksp/tutorials/ex29.c.html
src/ksp/ksp/tutorials/ex34.c.html
src/tao/bound/tutorials/jbearing2.c.html
Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages