[petsc-users] computation of Sp for fieldsplit schur preconditioner

Colin McAuliffe cjm2176 at columbia.edu
Wed Dec 3 17:24:55 CST 2014


Hi Luc, it looks like it is possible to lump A00 before inverting it:

http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/KSP/MatSchurComplementGetAinvType.html#MatSchurComplementGetAinvType

I wonder if this will produce a similar improvement for your problem while
avoiding the need to implement diag(inv(A00)).

On Wed, Dec 3, 2014 at 5:40 PM, Jed Brown <jed at jedbrown.org> wrote:

> Luc Berger-Vergiat <lb2653 at columbia.edu> writes:
>
> > Hi all,
> > I would like to know if there would be an easy way of computing the Sp
> > preconditioner for a fieldsplit schur complement using the following
> > formula:
> > Sp=A11-A10*diag(inv(A00))*A01
> > instead of
> > Sp=A11-A10*inv(diag(A00))*A01
>
> Not in general because inv(A00) is dense, thus not practically
> computable.  You can use PCFieldSplitSetSchurPre to provide your own Sp.
>
> > I think that it would be really beneficial in my case since the
> > eigenvalues of both operators are very different for my problem (see
> > ev_S_diaginv for the eigenvalues of the modified Sp and ev_S for the
> > eigenvalues of the current Sp).
> >
> > I do understand that this requires to compute a more complex inverse
> > while forming Sp, but I compute this inverse using a block jacobi lu due
> > to the special properties of my matrix (see jac_nonlin_nested for the
> > sparsity pattern of my matrix). So the change would actually be quite
> > minimal no? I am also actually debating whether I should compute the
> > exact S?
> >
> > --
> > Best,
> > Luc
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20141203/b146d2e2/attachment.html>


More information about the petsc-users mailing list