Skip to main content
`Ctrl`+`K`

# SNESRegister

Adds a method to the nonlinear solver package.

## Synopsis

    #include "petscsnes.h"
    #include "petscsnes.h"
    PetscErrorCode SNESRegister(const char sname[], PetscErrorCode (*function)(SNES))

Not Collective

## Input Parameters

- sname - name of a new user-defined solver

- function - routine to create method context

## Note

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

## Example Usage

       SNESRegister("my_solver", MySolverCreate);

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

      SNESSetType(snes, "my_solver")

or at runtime via the option

      -snes_type my_solver

## See Also

SNES: Nonlinear Solvers, `SNESRegisterAll()`, `SNESRegisterDestroy()`

## Level

advanced

## Location

src/snes/interface/snes.c

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