# SNESSetType#

Sets the method for the nonlinear solver.

## Synopsis#

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


Collective

## Input Parameters#

• snes - the SNES context

• type - a known method

## Options Database Key#

• -snes_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)

• SNESNEWTONTRDC - 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 Note#

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

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

intermediate

## Location#

src/snes/interface/snes.c

Edit on GitLab