Originally, my idea is to implement <a href="http://www.sciencedirect.com/science?_ob=ArticleURL&_udi=B6TY8-4MS9JN4-C&_user=686358&_rdoc=1&_fmt=&_orig=search&_sort=d&view=c&_acct=C000037498&_version=1&_urlVersion=0&_userid=686358&md5=8ae14f3bace78503c283f15cc0adc533">this preconditioner</a>. As far as I`m concerned, there`s no need to form and store any matrices, only the diagonal elements of the jacobian like I said. This way, I believe I`d have to stick with option #2.<br>
<br>With regard to "The matrix it will receive will be the MFFD that is created by -mat_mf.", what matrix is that actually? The one that is created by the `MatCreateMFFD` routine?<br><br>"Then you would have to extract the KSP and set your matrix-free PC there."<br>
<br>Do the calls to PCSetType and PCShellSetApply plus my own implementation of the `MatrixFreePreconditioner` function do that?<br><br>Best regards,<br><br>Rafael<br>