[petsc-users] Block Preconditioning

Matthew Knepley knepley at gmail.com
Thu May 28 11:02:13 CDT 2015


On Thu, May 28, 2015 at 10:47 AM, Elias Karabelas <
elias.karabelas at medunigraz.at> wrote:

> Dear Members,
>
> I want to solve a Block System arising from the Discretization of a
> stabilized Finite Element Formulation of the Stokes System.
>
> I have the following Block Structure
>
> A     -B^T
> B       C
>
> The Preconditioner I intend to use is a block preconditioner of the Form
>
> A    -B^T
>         S
>
> where S is an approximation of the Schur Complement. For applying the
> inverse of the schur complement I want to use a Stabilized Least Squares
> Commutator in the form
>
> S^-1 = (B diag(Q)^-1 B^T + C_1)^-1 (B diag(Q)^-1 A diag(Q)^-1 B^T + C_2)
> (B diag(Q)^-1 B^T + C_1)^-1
>
> where Q is the mass matrix and C_1 and C_2 are some additional
> stabilization matrices.
>
> I got from the Manual, that I can use the PCFieldSplit preconditioner for
> generating the general Block preconditioner as indicated above. And I also
> found that I can define some arbitrary PC with PCSHELL. My question is, if
> it is possible to use PCSHELL to define the action of S^-1 as indicated
> above.
>

1) Use FieldSplit is the right PC to start with. Make sure you can do
something simple like

  A -B^T
      C + B diag(A)^{-1} B^T

with it before we do the more complicated thing.

2) You will want to implement a PC for the (1,1) block. You can use a
PCSHELL, which is simpler to setup, but
    that means you will have to manually pull out the FieldSplit KSP and
set it. If instead you define your own
    PC implementation, its more boilerplate code, but you could specify
this PC from the command line without
    any FieldSplit specific code in your application.

3) Your PC will get two matrices, the MatSchurComplement, and the
preconditioning matrix. If you set Q as the
     preconditioning matrix, or really if you set

    A   0
    0   Q

as the global preconditioning matrix, then the subsolve for (1,1) will get
the Schur Complement and Q, and I think
that is enough to build your Stabilized LSC PC.

Let me know if this makes sense to you.

  Thanks,

    Matt

Kind Regards
> Elias Karabelas
>
> --
> Elias Karabelas, Ph.D.
>
> Medical University of Graz
> Institute of Biophysics
> Harrachgasse 21/IV
> 8010 Graz, Austria
>
> Phone: +43 316 380 7759
> Email: elias.karabelas at medunigraz.at
> Web  : http://forschung.medunigraz.at/fodok/staff?name=EliasKarabelas
>
>


-- 
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-users/attachments/20150528/32687b7b/attachment.html>


More information about the petsc-users mailing list