Skip to main content
`Ctrl`+`K`

# SNESSetDM

Sets the `DM` that may be used by some `SNES` nonlinear solvers or their underlying preconditioners

## Synopsis

    #include "petscsnes.h"
    PetscErrorCode SNESSetDM(SNES snes, DM dm)

Logically Collective

## Input Parameters

- snes - the nonlinear solver context

- dm - the `DM`, cannot be `NULL`

## Note

A `DM` can only be used for solving one problem at a time because information about the problem is stored on the `DM`, even when not using interfaces like `DMSNESSetFunction()`. Use `DMClone()` to get a distinct `DM` when solving different problems using the same function space.

## See Also

SNES: Nonlinear Solvers, `DM`, `SNES`, `SNESGetDM()`, `KSPSetDM()`, `KSPGetDM()`

## Level

intermediate

## Location

src/snes/interface/snes.c

## Examples

src/snes/tutorials/ex12.c
src/snes/tutorials/ex20.c
src/snes/tutorials/ex15.c
src/snes/tutorials/ex17.c
src/snes/tutorials/ex19.c
src/snes/tutorials/ex18.c
src/snes/tutorials/ex14.c
src/snes/tutorials/ex13.c
src/snes/tutorials/ex16.c
src/snes/tutorials/ex11.c

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