[petsc-users] Zero diagonal jacobian

Matthew Knepley knepley at gmail.com
Fri Sep 8 07:13:09 CDT 2017


On Fri, Sep 8, 2017 at 7:10 AM, Guido Giuntoli <giuntoli1991 at gmail.com>
wrote:

> Hi I want to solve a problem with a matrix of this kind
>
>        K   1
> J =
>        1   0
>
> that represents an elastic problem with Lagrange multipliers, this system
> is really small so I want to try a direct solver so I put -pc_type lu and
> it fails, probably because of the 0 diagonal. Is there any way, using
> petsc, to solve this in direct way ? like doing a shifting of columns or
> something like that.
>

1) You can use SuperLU, which has pivoting.

2) You can use PCFIELDSPLIT, giving the block split above, with type schur
and direct solves on each block.

3) You can use reordering, *-pc_factor_nonzeros_along_diagonal*

  Thanks,

     Matt


> Thank you, Guido.
>
-- 
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

http://www.caam.rice.edu/~mk51/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20170908/e8f53bce/attachment.html>


More information about the petsc-users mailing list