[petsc-users] Problem with PCFIELDSPLIT

Matthew Knepley knepley at gmail.com
Wed Jul 7 13:11:10 CDT 2021


On Wed, Jul 7, 2021 at 1:51 PM Jorti, Zakariae via petsc-users <
petsc-users at mcs.anl.gov> wrote:

> Hi,
>
>
> I am trying to build a PCFIELDSPLIT preconditioner for a matrix
>
> J =  [A00  A01]
>
>        [A10  A11]
>
> that has the following shape:
>
>
> M_{user}^{-1} = [I   -ksp(A00) A01] [ksp(A00)           0] [I
>            0]
>
>                           [0                        I]  [0
> ksp(T)] [-A10 ksp(A00)  I ]
>
>
> where T is a user-defined Schur complement approximation that replaces the
> true Schur complement S:= A11 - A10 ksp(A00) A01.
>
>
> I am trying to do something similar to this example (lines 41--45 and
> 116--121):
> https://www.mcs.anl.gov/petsc/petsc-current/src/snes/tutorials/ex70.c.html
>
>
> The problem I have is that I manage to replace S with T on a
> separate single linear system but not for the linear systems generated by
> my time-dependent PDE. Even if I set the preconditioner M_{user}^{-1}
> correctly, the T matrix gets replaced by S in the preconditioner once I
> call TSSolve.
>
> Do you have any suggestions how to fix this knowing that the matrix J does
> not change over time?
>
> I don't like how it is done in that example for this very reason.

When I want to use a custom preconditioning matrix for the Schur
complement, I always give a preconditioning matrix M to the outer solve.
Then PCFIELDSPLIT automatically pulls the correct block from M, (1,1) for
the Schur complement, for that preconditioning matrix without
extra code. Can you do this?

  Thanks,

    Matt

> Many thanks.
>
>
> Best regards,
>
>
> Zakariae
>
>

-- 
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

https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20210707/415de56d/attachment.html>


More information about the petsc-users mailing list