# KSPSetDM#

Sets the DM that may be used by some preconditioners

## Synopsis#

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


Logically Collective

## 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.

KSP: Linear System Solvers, KSP, DM, KSPGetDM(), KSPSetDMActive(), KSPSetComputeOperators(), KSPSetComputeRHS(), KSPSetComputeInitialGuess(), DMKSPSetComputeOperators(), DMKSPSetComputeRHS(), DMKSPSetComputeInitialGuess()

intermediate

## Location#

src/ksp/ksp/interface/iterativ.c

Edit on GitLab