If I have a way of computing $M^{-1} r$ where $M \approx A$ for a problem $Ax=b$, how would I go about applying the preconditioner in a krylov method for $Ax=b$ assuming that $M$ on it's own is not available. The set_operators method seems to do something other than what I'm looking for. I'm working in python, and I don't see an interface to the PETScUserPreconditioner class. What can I do?