[petsc-users] DIVERGED_PCSETUP_FAILED
Michele Rosso
mrosso at uci.edu
Wed Feb 10 21:49:00 CST 2016
Hong,
here if the output of grep -info:
using diagonal shift on blocks to prevent zero pivot [INBLOCKS]
Replace tiny pivots FALSE
tolerance for zero pivot 2.22045e-14
It seems it is not replacing small pivots: could this be the problem?
I will also try Barry's suggestion to diagnose the problem.
Thanks,
Michele
On Wed, 2016-02-10 at 21:22 -0600, Barry Smith wrote:
> > On Feb 10, 2016, at 9:00 PM, Hong <hzhang at mcs.anl.gov> wrote:
> >
> > Michele :
> > Superlu_dist LU is used for coarse grid PC, which likely produces a zero-pivot.
> > Run your code with '-info |grep pivot' to verify.
>
> Michele
>
> You can also run with -ksp_error_if_not_converged in or not in the debugger and it will stop immediately when the problem is detected and hopefully provide additional useful information about what has happened.
>
> Barry
>
> >
> > Hong
> >
> > Hi Matt,
> >
> > the ksp_view output was an attachment to my previous email.
> > Here it is:
> >
> > KSP Object: 1 MPI processes
> > type: cg
> > maximum iterations=10000
> > tolerances: relative=1e-08, absolute=1e-50, divergence=10000.
> > left preconditioning
> > using nonzero initial guess
> > using UNPRECONDITIONED norm type for convergence test
> > PC Object: 1 MPI processes
> > type: mg
> > MG: type is MULTIPLICATIVE, levels=4 cycles=v
> > Cycles per PCApply=1
> > Using Galerkin computed coarse grid matrices
> > Coarse grid solver -- level -------------------------------
> > KSP Object: (mg_coarse_) 1 MPI processes
> > type: preonly
> > maximum iterations=1, initial guess is zero
> > tolerances: relative=1e-05, absolute=1e-50, divergence=10000.
> > left preconditioning
> > using NONE norm type for convergence test
> > PC Object: (mg_coarse_) 1 MPI processes
> > type: lu
> > LU: out-of-place factorization
> > tolerance for zero pivot 2.22045e-14
> > using diagonal shift on blocks to prevent zero pivot [INBLOCKS]
> > matrix ordering: nd
> > factor fill ratio given 0., needed 0.
> > Factored matrix follows:
> > Mat Object: 1 MPI processes
> > type: seqaij
> > rows=16, cols=16
> > package used to perform factorization: superlu_dist
> > total: nonzeros=0, allocated nonzeros=0
> > total number of mallocs used during MatSetValues calls =0
> > SuperLU_DIST run parameters:
> > Process grid nprow 1 x npcol 1
> > Equilibrate matrix TRUE
> > Matrix input mode 0
> > Replace tiny pivots FALSE
> > Use iterative refinement FALSE
> > Processors in row 1 col partition 1
> > Row permutation LargeDiag
> > Column permutation METIS_AT_PLUS_A
> > Parallel symbolic factorization FALSE
> > Repeated factorization SamePattern
> > linear system matrix = precond matrix:
> > Mat Object: 1 MPI processes
> > type: seqaij
> > rows=16, cols=16
> > total: nonzeros=72, allocated nonzeros=72
> > total number of mallocs used during MatSetValues calls =0
> > not using I-node routines
> > Down solver (pre-smoother) on level 1 -------------------------------
> > KSP Object: (mg_levels_1_) 1 MPI processes
> > type: richardson
> > Richardson: damping factor=1.
> > maximum iterations=2
> > tolerances: relative=1e-05, absolute=1e-50, divergence=10000.
> > left preconditioning
> > using nonzero initial guess
> > using NONE norm type for convergence test
> > PC Object: (mg_levels_1_) 1 MPI processes
> > type: sor
> > SOR: type = local_symmetric, iterations = 1, local iterations = 1, omega = 1.
> > linear system matrix = precond matrix:
> > Mat Object: 1 MPI processes
> > type: seqaij
> > rows=64, cols=64
> > total: nonzeros=304, allocated nonzeros=304
> > total number of mallocs used during MatSetValues calls =0
> > not using I-node routines
> > Up solver (post-smoother) same as down solver (pre-smoother)
> > Down solver (pre-smoother) on level 2 -------------------------------
> > KSP Object: (mg_levels_2_) 1 MPI processes
> > type: richardson
> > Richardson: damping factor=1.
> > maximum iterations=2
> > tolerances: relative=1e-05, absolute=1e-50, divergence=10000.
> > left preconditioning
> > using nonzero initial guess
> > using NONE norm type for convergence test
> > PC Object: (mg_levels_2_) 1 MPI processes
> > type: sor
> > SOR: type = local_symmetric, iterations = 1, local iterations = 1, omega = 1.
> > linear system matrix = precond matrix:
> > Mat Object: 1 MPI processes
> > type: seqaij
> > rows=256, cols=256
> > total: nonzeros=1248, allocated nonzeros=1248
> > total number of mallocs used during MatSetValues calls =0
> > not using I-node routines
> > Up solver (post-smoother) same as down solver (pre-smoother)
> > Down solver (pre-smoother) on level 3 -------------------------------
> > KSP Object: (mg_levels_3_) 1 MPI processes
> > type: richardson
> > Richardson: damping factor=1.
> > maximum iterations=2
> > tolerances: relative=1e-05, absolute=1e-50, divergence=10000.
> > left preconditioning
> > using nonzero initial guess
> > using NONE norm type for convergence test
> > PC Object: (mg_levels_3_) 1 MPI processes
> > type: sor
> > SOR: type = local_symmetric, iterations = 1, local iterations = 1, omega = 1.
> > linear system matrix = precond matrix:
> > Mat Object: 1 MPI processes
> > type: seqaij
> > rows=1024, cols=1024
> > total: nonzeros=5056, allocated nonzeros=5056
> > total number of mallocs used during MatSetValues calls =0
> > has attached null space
> > not using I-node routines
> > Up solver (post-smoother) same as down solver (pre-smoother)
> > linear system matrix = precond matrix:
> > Mat Object: 1 MPI processes
> > type: seqaij
> > rows=1024, cols=1024
> > total: nonzeros=5056, allocated nonzeros=5056
> > total number of mallocs used during MatSetValues calls =0
> > has attached null space
> > not using I-node routines
> >
> >
> > Michele
> >
> >
> >
> >
> > On Wed, 2016-02-10 at 19:37 -0600, Matthew Knepley wrote:
> >> On Wed, Feb 10, 2016 at 7:33 PM, Michele Rosso <mrosso at uci.edu> wrote:
> >> Hi,
> >>
> >> I encountered the following error while solving a symmetric positive defined system:
> >>
> >> Linear solve did not converge due to DIVERGED_PCSETUP_FAILED iterations 0
> >> PCSETUP_FAILED due to SUBPC_ERROR
> >>
> >> This error appears only if I use the optimized version of both petsc and my code ( compiler: gfortran, flags: -O3 ).
> >> It is weird since I am solving a time-dependent problem and everything, i.e. results and convergence rate, are as expected until the above error shows up. If I run both petsc and my code in debug mode, everything goes smooth till the end of the simulation.
> >> However, if I reduce the ksp_rtol, even the debug run fails, after running as expected for a while, because of a KSP_DIVERGED_INDEFINITE_PC .
> >> The options I am using are:
> >>
> >> -ksp_type cg
> >> -ksp_norm_type unpreconditioned
> >> -ksp_rtol 1e-8
> >> -ksp_lag_norm
> >> -ksp_initial_guess_nonzero yes
> >> -pc_type mg
> >> -pc_mg_galerkin
> >> -pc_mg_levels 4
> >> -mg_levels_ksp_type richardson
> >> -mg_coarse_ksp_constant_null_space
> >> -mg_coarse_pc_type lu
> >> -mg_coarse_pc_factor_mat_solver_package superlu_dist
> >> -options_left
> >>
> >> I attached a copy of ksp_view. I am currently using petsc-master (last updated yesterday).
> >> I would appreciate any suggestion on this matter.
> >>
> >>
> >>
> >> I suspect you have a nonlinear PC. Can you send the output of -ksp_view?
> >>
> >>
> >> Matt
> >>
> >> Thanks,
> >> Michele
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> --
> >> 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
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20160210/c8b5ad9e/attachment-0001.html>
More information about the petsc-users
mailing list