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 <[email protected] <mailto:[email protected]>> 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: [email protected]
    <mailto:[email protected]>
    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: [email protected]
Web  : http://forschung.medunigraz.at/fodok/staff?name=EliasKarabelas

Reply via email to