Well, let me explain myself again. I&#39;ve implemented a serial <a href="http://www.sciencedirect.com/science?_ob=ArticleURL&amp;_udi=B6TY8-4MS9JN4-C&amp;_user=10&amp;_rdoc=1&amp;_fmt=&amp;_orig=search&amp;_sort=d&amp;view=c&amp;_acct=C000050221&amp;_version=1&amp;_urlVersion=0&amp;_userid=10&amp;md5=7c9ea4aa9e6e131f2f2d4683b49b6e8e">matrix-free uniparametric LU-SGS preconditioner</a> for non-linear problems using the PETSc PCSHELL module. It&#39;s matrix-free in the sense that whenever the jacobian matrix (and by that I mean the L, D and U factors of the jacobian matrix) is required within the linear solver in the form of a matrix-vector product, I resort to a finite-difference formula in order to approximate the jacobian entries. So the jacobian matrix is never actually formed. To use my preconditioner, I just have to set the &quot;-user_precond&quot; command-line option along with &quot;-snes_mf&quot;.<br>
<br>Now, the cost to apply that preconditioner obviously grows according to the problem dimensions, so it is built and applied within the linear solver to form the vectors of the Krylov subspace basis in each linear iteration. I want to change that, and only have it applied every &quot;p&quot; linear iterations to make it less costlier.<br>
<br>Rafael<br>