# SNESSetDM#

Sets the DM that may be used by some 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.

DM, SNESGetDM(), KSPSetDM(), KSPGetDM()

intermediate

## Location#

src/snes/interface/snes.c

Edit on GitLab