This is very odd. CONVERGED_STEP_LENGTH for KSP is very specialized and should never occur with GMRES.
Can you run with valgrind to make sure there is no memory corruption? http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind Is your code fortran or C? Barry > On Sep 8, 2016, at 10:38 AM, Harshad Sahasrabudhe <[email protected]> wrote: > > Hi, > > I'm using GAMG + GMRES for my Poisson problem. The solver converges with > KSP_CONVERGED_STEP_LENGTH at a residual of 9.773346857844e-02, which is much > higher than what I need (I need a tolerance of at least 1E-8). I am not able > to figure out which tolerance I need to set to avoid convergence due to > CONVERGED_STEP_LENGTH. > > Any help is appreciated! Output of -ksp_view and -ksp_monitor: > > 0 KSP Residual norm 3.121347818142e+00 > 1 KSP Residual norm 9.773346857844e-02 > Linear solve converged due to CONVERGED_STEP_LENGTH iterations 1 > KSP Object: 1 MPI processes > type: gmres > GMRES: restart=30, using Classical (unmodified) Gram-Schmidt > Orthogonalization with no iterative refinement > GMRES: happy breakdown tolerance 1e-30 > maximum iterations=10000, initial guess is zero > tolerances: relative=1e-08, absolute=1e-50, divergence=10000 > left preconditioning > using PRECONDITIONED norm type for convergence test > PC Object: 1 MPI processes > type: gamg > MG: type is MULTIPLICATIVE, levels=2 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: bjacobi > block Jacobi: number of blocks = 1 > Local solve is same for all blocks, in the following KSP and PC > objects: > KSP Object: (mg_coarse_sub_) 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_sub_) 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 5, needed 1.91048 > Factored matrix follows: > Mat Object: 1 MPI processes > type: seqaij > rows=284, cols=284 > package used to perform factorization: petsc > total: nonzeros=7726, allocated nonzeros=7726 > total number of mallocs used during MatSetValues calls =0 > using I-node routines: found 133 nodes, limit used is 5 > linear system matrix = precond matrix: > Mat Object: 1 MPI processes > type: seqaij > rows=284, cols=284 > total: nonzeros=4044, allocated nonzeros=4044 > total number of mallocs used during MatSetValues calls =0 > not using I-node routines > linear system matrix = precond matrix: > Mat Object: 1 MPI processes > type: seqaij > rows=284, cols=284 > total: nonzeros=4044, allocated nonzeros=4044 > 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: chebyshev > Chebyshev: eigenvalue estimates: min = 0.195339, max = 4.10212 > 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=9036, cols=9036 > total: nonzeros=192256, allocated nonzeros=192256 > total number of mallocs used during MatSetValues calls =0 > 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=9036, cols=9036 > total: nonzeros=192256, allocated nonzeros=192256 > total number of mallocs used during MatSetValues calls =0 > not using I-node routines > > Thanks, > Harshad
