[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.

  Thanks,

     Matt


> 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