[petsc-dev] Separate operators for jacobian and preconditioner matrix on coarse MG levels

Matthew Knepley knepley at gmail.com
Tue Feb 24 13:27:14 CST 2015

On Tue, Feb 24, 2015 at 12:57 PM, Lawrence Mitchell <
lawrence.mitchell at imperial.ac.uk> wrote:

> Hash: SHA1
> Hi all,
> I'd like to be able to provide a matrix that is different to the
> actual operator for preconditioning purposes on coarse levels.  I
> think I see how to do this for PCMG, I do KSPSetComputeOperators which
> migrates to the DM and will be called to setup the operators on first
> KSPSolve calls.
> On the other hand, for FAS, it looks like there is no way to do this:
> The SNESen on each level will call SNESSetupMatrices which, if the
> snes doesn't have a jacobian matrix set, will call DMCreateMatrix once
> to create snes->jacobian and use that for both the jacobian and the
> preconditioner for the jacobian.  Is this right, or do I have the
> wrong end of the stick?

That is what happens. It does check for snes->jacobian, but that would not
set on coarse levels anyway. I think we should have an option that makes
SNESSetUpMatrices() create two matrices.


> Cheers,
> Lawrence
> Version: GnuPG v1
> iQEcBAEBAgAGBQJU7MmXAAoJECOc1kQ8PEYvgdMH/ip3m0z2g6wvURkiP680QZ63
> peAKK9R1F5TJZt1OjZR9d99YcplHwsTi7EemEAJ6kaDlo1QVJ+aGTh00EcaR9yiT
> lT0zlJQ8vsSa7Wwn12OGa02kZ6jh9wdRJJOhpSJoqdSih2zMhlcBYjgR1VupxpbT
> ALF9TMrxi1086y7237ukbcuQh4MCidzY8t5pwglNGjGVzGMRprWGhW+0nv9Wie7f
> gY6r0NAfyGc3Yi7FQvPupi07WMo1hDwnRaWVah3w11JCqVRPZXs3XxKD/KaZO/cN
> 0HJ70WDNJWCR1gnQ2fdFIR5grm5Dr6xIJ2rtUbBCRwldi3ZhdcmHVfjMD3o75r0=
> =AB63

What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20150224/bc5ee141/attachment.html>

More information about the petsc-dev mailing list