[petsc-users] Block Preconditioning

Elias Karabelas elias.karabelas at medunigraz.at
Thu May 28 11:09:13 CDT 2015


Dear Matt,

sorry but I think I haven't understood points 2 and 3 you mentioned. 
Could you be a bit more specific?

Thanks
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 <mailto: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 <tel:%2B43%20316%20380%207759>
>     Email: elias.karabelas at medunigraz.at
>     <mailto: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

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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20150528/954c25a9/attachment.html>


More information about the petsc-users mailing list