PETSc version 3.17.4
Fix/Edit manual page

# KSPSetDM

Sets the DM that may be used by some preconditioners

### Synopsis

    #include "petscksp.h"
    PetscErrorCode  KSPSetDM(KSP ksp,DM dm)

Logically Collective on ksp

### Input Parameters

| ksp | - the preconditioner context
| dm | - the dm, cannot be NULL

### Notes

If this is used then the KSP will attempt to use the DM to create the matrix and use the routine set with DMKSPSetComputeOperators(). Use KSPSetDMActive(ksp,PETSC_FALSE) to instead use the matrix you've provided with KSPSetOperators().

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 DMKSPSetComputeOperators(). Use DMClone() to get a distinct DM when solving different problems using the same function space.

### See Also

KSPGetDM(), KSPSetDMActive(), KSPSetComputeOperators(), KSPSetComputeRHS(), KSPSetComputeInitialGuess(), DMKSPSetComputeOperators(), DMKSPSetComputeRHS(), DMKSPSetComputeInitialGuess()

### Level

intermediate

### Location

src/ksp/ksp/interface/iterativ.c

### Examples

src/dm/impls/stag/tutorials/ex4.c.html
src/ksp/ksp/tutorials/ex25.c.html
src/ksp/ksp/tutorials/ex28.c.html
src/ksp/ksp/tutorials/ex29.c.html
src/ksp/ksp/tutorials/ex32.c.html
src/ksp/ksp/tutorials/ex34.c.html
src/ksp/ksp/tutorials/ex43.c.html
src/ksp/ksp/tutorials/ex45.c.html
src/ksp/ksp/tutorials/ex50.c.html
src/ksp/ksp/tutorials/ex65.c.html
src/ksp/ksp/tutorials/ex66.c.html
Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages