PCRegisterDynamic

Adds a method to the preconditioner package.

Synopsis

PetscErrorCode PCRegisterDynamic(char *name_solver,char *path,char *name_create,PetscErrorCode (*routine_create)(PC))
Not collective

Input Parameters

name_solver - name of a new user-defined solver
path - path (either absolute or relative) the library containing this solver
name_create - name of routine to create method context
routine_create - routine to create method context

Notes

PCRegisterDynamic() may be called multiple times to add several user-defined preconditioners.

If dynamic libraries are used, then the fourth input argument (routine_create) is ignored.

Sample usage

   PCRegisterDynamic("my_solver","/home/username/my_lib/lib/libO/solaris/mylib",
              "MySolverCreate",MySolverCreate);

Then, your solver can be chosen with the procedural interface via

    PCSetType(pc,"my_solver")
or at runtime via the option
    -pc_type my_solver

Notes: ${PETSC_ARCH}, ${PETSC_DIR}, ${PETSC_LIB_DIR}, or ${any environmental variable} occuring in pathname will be replaced with appropriate values. If your function is not being put into a shared library then use PCRegister() instead

Keywords

PC, register

See Also

PCRegisterAll(), PCRegisterDestroy()

Level:advanced
Location:
src/ksp/pc/../../../include/petscpc.h
Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages

Examples

src/ksp/ksp/examples/tutorials/ex12.c.html