[petsc-users] Question about SuperLU

Matthew Knepley knepley at gmail.com
Fri Jun 10 09:11:11 CDT 2022

On Thu, Jun 9, 2022 at 5:20 PM Jorti, Zakariae via petsc-users <
petsc-users at mcs.anl.gov> wrote:

> Hi,
> I am solving non-linear problem that has 5 unknowns {ni, T, E, B, V}, and
> for the preconditioning part, I am using a FieldSplit preconditioner. At
> the last fieldsplit/level, we are left with a {B,V} block that tried to
> precondition in 2 different ways:
> a) SuperLU:
> -fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_ksp_type preonly
> -fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_pc_type lu
> -fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_pc_factor_mat_solver_type
> superlu_dist
> b) a Schur-based fieldsplit preconditioner that uses SuperLU for both V
> and B blocks:
> -fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_ksp_type gmres
> -fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_pc_type fieldsplit
> -fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_pc_fieldsplit_type schur
> -fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_pc_fieldsplit_schur_precondition
> selfp -fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_fieldsplit_B_ksp_type
> preonly -fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_fieldsplit_B_pc_type
> lu
> -fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_fieldsplit_B_pc_factor_mat_solver_type
> superlu_dist
> -fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_fieldsplit_V_ksp_type preonly
> -fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_fieldsplit_V_pc_type lu
> -fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_fieldsplit_V_pc_factor_mat_solver_type
> superlu_dist
> Option a) yields the following error:
> "     Linear fieldsplit_ni_ solve converged due to CONVERGED_ATOL
> iterations 0
>         Linear fieldsplit_TEBV_fieldsplit_tau_ solve converged due to
> CONVERGED_RTOL iterations 1
>           Linear fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_EP_ solve
> converged due to CONVERGED_RTOL iterations 5
>           Linear fieldsplit_TEBV_fieldsplit_EBV_fieldsplit_BV_ solve did
> not converge due to DIVERGED_PC_FAILED iterations 0
>                          PC failed due to FACTOR_NUMERIC_ZEROPIVOT "
> whereas options b) seems to be working well.
> Is it possible that the SuperLU on the {V,B} block uses a reordering that
> introduces a zero pivot or could there be another explanation for this
> error?

I can at least come up with a case where this is true. Suppose you have

  / A 0 \
  \ 0  I /

where A is rank deficient, but has a positive diagonal. SuperLU will fail
since it is actually singular. However, your Schur complement might work
since you use
'selfp' for the Schur preconditioner, and it just extracts the diagonal.



> Many thanks.
> Best,
> Zakariae

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/20220610/c4a54969/attachment-0001.html>

More information about the petsc-users mailing list