MatRegister#

Adds a new matrix type implementation that is usable as a Mat in PETSc

Synopsis#

#include "petscmat.h" 
PetscErrorCode MatRegister(const char sname[], PetscErrorCode (*function)(Mat))

Not Collective, No Fortran Support

Input Parameters#

  • sname - name of a new user-defined matrix type

  • function - routine to create method context

Note#

MatRegister() may be called multiple times to add several user-defined solvers.

A simpler alternative to using MatRegister() for an application specific matrix format is to use MatCreateShell(), which generates a Mat of MatType MATSHELL. One can then use MatShellSetContext() and MatShellSetOperation() to provide the data structures and routines customized for their matrix format.

Example Usage#

   MatRegister("my_mat", MyMatCreate);

Then, your solver can be chosen with the procedural interface via MatSetType(Mat, "my_mat") or at runtime via the option -mat_type my_mat

See Also#

Matrices, Mat, MatType, MatSetType(), MatRegisterAll()

Level#

advanced

Location#

src/mat/interface/matreg.c


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