[petsc-users] Block Preconditioning

Elias Karabelas karabelaselias at gmail.com
Fri May 29 05:09:17 CDT 2015


Dear Matt,

I tried out what you said. I used the following example I found with google

https://raw.githubusercontent.com/petsc/petsc/5edff71f342f05166073de0ae93226f0997d7fe9/src/snes/examples/tutorials/ex70.c

So now I have some questions concerning that


a) When I use pc_fieldsplit_precondition_schur selfp I get slower
convergence than with the user-provided Schur-Complement approximation in
this example code. However from what I saw this should coincide in this
case?

b) I get a little confused with the settings of the inner and outer solvers
in fieldsplit. So if I understood it correctly
"-pc_fieldsplit_schur_fact_type upper" uses

K    -B^T
0     S

as preconditioner. Where K and S are inverted with the help of a KSP. So
what I don't get is how to tweak the inner solvers correctly. For Example,
In my own Implementation of preconditioned GMRES I also use the same
structure as above as preconditioner and I take K^-1 to be approximated by
the application of an AMG (in my case BoomerAMG) . Further I take S = B
diag(K)^-1 B^T and again use an AMG to invert S. This results in my case in
a good preconditioner.

I tried now the same with this example and used

-fieldsplit_0_ksp_type preonly -fieldsplit_0_pc_type hypre
-fieldsplit_1_ksp_type preonly -fieldsplit_1_pc_type hypre

However I get really slow convergence of the outer GMRES method.

Can someone give me some insight into this?

Best regards
Elias


On 28.05.2015 18:02, Matthew Knepley wrote:

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/20150529/4fec5d7a/attachment-0001.html>


More information about the petsc-users mailing list