DM that may be used by some nonlinear solvers or their underlying preconditioners
snes - the nonlinear solver context
dm - the dm, cannot be NULL
DM can only be used for solving one problem at a time because information about the problem is stored on the
even when not using interfaces like
DMClone() to get a distinct
DM when solving different
problems using the same function space.