petsc-3.12.1 2019-10-22
Report Typos and Errors

# SNESSetType

Sets the method for the nonlinear solver.

### Synopsis

    #include "petscsnes.h"
    PetscErrorCode  SNESSetType(SNES snes,SNESType type)

Collective on SNES

### Input Parameters

| snes | - the SNES context
| type | - a known method

### Options Database Key

-snes_type <type> -Sets the method; use -help for a list of available methods (for instance, newtonls or newtontr)

### Notes

See "petsc/include/petscsnes.h" for available methods (for instance)

| SNESNEWTONLS | - Newton's method with line search (systems of nonlinear equations)
| SNESNEWTONTR | - Newton's method with trust region (systems of nonlinear equations)

Normally, it is best to use the SNESSetFromOptions() command and then set the SNES solver type from the options database rather than by using this routine. Using the options database provides the user with maximum flexibility in evaluating the many nonlinear solvers. The SNESSetType() routine is provided for those situations where it is necessary to set the nonlinear solver independently of the command line or options database. This might be the case, for example, when the choice of solver changes during the execution of the program, and the user's application is taking responsibility for choosing the appropriate method.

### Developer Notes

SNESRegister() adds a constructor for a new SNESType to SNESList, SNESSetType() locates the constructor in that list and calls it to create the spexific object.

### See Also

SNESType, SNESCreate(), SNESDestroy(), SNESGetType(), SNESSetFromOptions()

### Level

intermediate

### Location

src/snes/interface/snes.c

### Examples

src/snes/examples/tutorials/ex9.c.html
src/snes/examples/tutorials/ex35.c.html
src/ts/examples/tutorials/ex22.c.html
Index of all SNES routines
Table of Contents for all manual pages
Index of all manual pages