Currently DMGetMatrix(DM dm, MatType mattype , Mat *J)  is supposed to produce the system Jacobian, according to the docs.<div>SNES will use it, but, since DMGetMatrix returns a single matrix, it can't use a different preconditioning matrix.</div>

<div>Why not change this to DMGetMatrices(DM dm, MatType jtype, Mat *J, MatType  ptype, Mat *P)?</div><div>I'm not exactly sure what the best way of handling MatType should be (same MatType for J and P, separate types, how dm->mattype </div>

<div>affects the result), but I think it can be sorted out, whereas the absence of P is a clear limitation.</div><div><br></div><div>Dmitry.</div>