[petsc-users] Solving block systems with some null diagonal blocks
Manuel Colera Rico
m.colera at upm.es
Tue Mar 26 04:23:25 CDT 2019
OK, thank you Matt.
Manuel
---
On 3/25/19 6:27 PM, Matthew Knepley wrote:
> On Mon, Mar 25, 2019 at 8:07 AM Manuel Colera Rico via petsc-users
> <petsc-users at mcs.anl.gov <mailto:petsc-users at mcs.anl.gov>> wrote:
>
> Hello,
>
> I would like to solve a N*N block system (with N>2) in which some
> of the
> diagonal blocks are null. My system matrix is defined as a
> MatNest. As
> N>2, I can't use "pc_fieldsplit_type schur" nor
> "pc_fieldsplit_detect_saddle_point". The other algorithms
> ("additive",
> "multiplicative" and "symmetric_multiplicative") don't work either as
> they need each A_ii to be non-zero.
>
> Is there any built-in function in PETSc for this? If not, could you
> please suggest a workaround?
>
>
> You can just shove all of the rows with nonzero diagonal in one field,
> and all with zero diagonal in another, and do Schur. This is what
>
> -pc_fieldsplit_detect_saddle_point
>
> does. However, you have to understand the Schur complement to solve it
> efficiently. More generally, you can recursively split the matrix,
> which is what I do for many multiphysics problems.
>
> Thanks,
>
> Matt
>
> Thanks and kind regards,
>
> Manuel
>
> ---
>
>
>
>
> --
> 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
>
> https://www.cse.buffalo.edu/~knepley/
> <http://www.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20190326/d92a786e/attachment.html>
More information about the petsc-users
mailing list