On 22 November 2014 at 12:00, Barry Smith <[email protected]> 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 <[email protected]> wrote: > > > > > > > > On 21 November 2014 18:23, Barry Smith <[email protected]> wrote: > > > > > On Nov 21, 2014, at 5:09 PM, Anush Krishnan <[email protected]> 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> > >
