[petsc-users] Schur complement with a preconditioner
Matthew Knepley
knepley at gmail.com
Thu Jul 25 13:07:48 CDT 2013
On Thu, Jul 25, 2013 at 12:29 PM, Umut Tabak <u.tabak at tudelft.nl> wrote:
> Dear all,
>
> I have a system that I would like to solve for multiple rhs, represented
> in block notation as
>
> [ A C ] x1 b1
> =
> [ C^T B ] x2 b2
>
> I could solve the system
>
> (B - C^TA^{-1}C)x2 = bupdated
>
> with Minres algorithm in MATLAB by using the Incomplete Factorization of B
> in decent iteration counts, like 43. The problem is that B is not SPD and
> it has one negative eigenvalue. That is the reason to use MINRES.
>
> Just as a try, I saved the matrix represented by (B - C^TA^{-1}C) in
> sparse format and used the hypre euclid preconditioner in PETSc which
> resulted in 25 iterations to convergence. But since for large problems,
> this approach is not viable, I was wondering if that is possible to use the
> complete cholesky factorization of B+alpha*diag(B) where alpha is given
> as
>
> alpha = max(sum(abs(A),2)./diag(A))-2
>
> as a preconditioner for the above schur complement. Or in general use an external preconditioner
> for the matrix operator.
>
>
You can use PCFIELDSPLIT as the outer PC
and then -pc_fieldsplit_type schur,
and then -pc_fieldsplit_schur_preconditioner a11
which will use B to form the preconditioner for S
or -pc_fieldsplit_schur_precondition user
for which you could provide B+alpha*diag(B)
Thanks,
Matt
>
> Any pointers are appreciated.
> Best,
> Umut
>
>
--
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/20130725/9399c8d7/attachment-0001.html>
More information about the petsc-users
mailing list