[petsc-users] Indefinite PC

Anush Krishnan k.anush at gmail.com
Sat Nov 22 11:25:13 CST 2014


On 22 November 2014 at 12:00, Barry Smith <bsmith at mcs.anl.gov> wrote:

>
>    You could do -sys2_mg_levels_ksp_max_it 3   and/or
> -sys2_mg_coarse_pc_type redundant
>
>    Or if you configured PETSc with a parallel direct solver like
> superlu_dist you could use -sys2_mg_coarse_pc_type  pc
>           -sys2_mg_coarse_pc_mat_factor_solver_package superlu_dist
>
>
>
>     Or you could keep the current PC gamg options and switch to -ksp_type
> bcgs
>

Thank you. I'll try those options and get back.


>
>   Barry
>
>
>
> > On Nov 21, 2014, at 11:05 PM, Anush Krishnan <k.anush at gmail.com> wrote:
> >
> >
> >
> > On 21 November 2014 18:23, Barry Smith <bsmith at mcs.anl.gov> wrote:
> >
> > > On Nov 21, 2014, at 5:09 PM, Anush Krishnan <k.anush at gmail.com> wrote:
> > >
> > > Hello petsc-users,
> > >
> > > I've been running some CFD simulations, and I ran into one case where
> the system (which is a coupled system for pressure and body forces) did not
> converge and the reason was KSP_DIVERGED_INDEFINITE_PC. The options I'm
> using are -pc_gamg_agg_nsmooths 1 -pc_type gamg -pc_gamg_type agg with a
> conjugate gradient solver.
> >
> >    We've heard reports of this happening before. You should increase the
> number of smoothing steps for the multigrid or change to a "stronger"
> smoother.
> >
> >    What do you get with -ksp_view for exact solver you are using?
> >
> > I've attached a copy of the output with -ksp_view.
> >
> >
> >    Are you using PETSc's SNES? TS? Or just KSP?
> >
> > Just KSP.
> >
> >
> > >
> > > I saw in example ksp/pc/examples/tutorials/ex2.c that I should use the
> flag -pc_factor_shift_positive_definite to avoid this.
> >
> >    This flag is only for factorization based preconditioners not gamg so
> you should not use it.
> >
> > > I have a few questions regarding this:
> > >       • What does it mean that the preconditioner is indefinite?
> >
> >     It means that the preconditioner generated by GAMG has both negative
> and positive eigenvalues. CG cannot handle this, CG  requires the
> preconditioner have all eigenvalues of the same sign.
> >
> > > What can cause this to happen? And what does the above flag do?
> > >       • The error occurs midway through the simulation. Is there any
> reason why this might be the case? The left-hand side matrix does not
> change during the simulation.
> >
> >     Huh? If the matrix is not changing then the preconditioner should
> not be changing and hence the preconditioner should not be rebuilt and
> hence you should not see this message "midway through the simulation". Are
> you sure that the matrix is not changing??
> >
> > Yes, I'm sure that the matrix is not changing. Only the right hand side
> vector changes every time step.
> >
> > I have heard that CG sometimes converges even if the matrix is not
> positive definite - do you think that might be happening? Also, is there a
> way to check if a given matrix is positive definite using PETSc? And is it
> possible to generate an indefinite preconditioner from a matrix that is
> symmetric positive definite (I remember seeing a thread about this
> recently)?
> >
> >
> >
> > >       • Do both -pc_factor_shift_positive_definite and
> -pc_factor_shift_type POSITIVE_DEFINITE do the same thing?
> >
> >    Yes, they are from different versions of PETSc, but neither are for
> gamg.
> >
> >   Barry
> >
> > > Thank you,
> > >
> > > Anush
> > >
> >
> >
> > <ksp_view.txt>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20141122/48997399/attachment.html>


More information about the petsc-users mailing list