On Thu, 8 Jan 2015, Jed Brown wrote: > Roy Stogner <royst...@ices.utexas.edu> writes: > >> On Thu, 8 Jan 2015, Jed Brown wrote: >> >>>> 10 KSP preconditioned resid norm 1.580464771307e-13 true resid norm >>>> 3.084021824157e-04 ||r(i)||/||b|| 2.711608086867e-03 >>>> number of iterations to solve adjoint: 10 final residual of adjoint solve: >>>> 1.58046e-13 >>> >>> This is usually caused by a singular preconditioner. >> >>> http://mid.mail-archive.com/87y6iyzl73.fsf@59A2.org >> >> Thanks! Is there a workaround that avoids false positives in such >> cases? I've tried (with PETSc 3.5.2) "-ksp_pc_side right" and >> "-ksp_type bcgs -ksp_norm_type unpreconditioned", but neither seems to >> do much. > > What do you mean?
By "neither seems to do much"? I mean that if I set either "-ksp_pc_side right" or "-ksp_norm_type unpreconditioned", then instead of ending up falsely "converged" at 10 KSP preconditioned resid norm 1.580464771307e-13 true resid norm 3.084021824157e-04 ||r(i)||/||b|| 2.711608086867e-03 I end up at 10 KSP unpreconditioned resid norm 4.683505266751e-14 true resid norm 3.820485023471e-04 ||r(i)||/||b|| 3.359139032108e-03 >> It's odd that incomplete LU would be singular but incomplete Cholesky >> would work fine, too, isn't it? > > Where do you see ILU being singular while ICC is not? Right here, assuming the singular preconditioner theory is correct. With the default (or with explicitly set) "-pc_type ilu" I see the above; with "-pc_type icc" I end up at 92 KSP preconditioned resid norm 1.322044991650e-13 true resid norm 8.345374951602e-14 ||r(i)||/||b|| 7.337621942051e-13 or 93 KSP unpreconditioned resid norm 6.339459949689e-14 true resid norm 6.339403586772e-14 ||r(i)||/||b|| 5.573883393805e-13 depending on whether I set "-ksp_norm_type unpreconditioneed" > What do you intend ICC to mean if the matrix is nonsymmetric? Mu. The matrix is symmetric. Loading it up in Octave I get norm(K)=2.0000, norm(K-K')=1.1395e-16 > What KSP are you using here? The default (GMRES, IIRC and based on the unchanged results when I set it explicitly). I briefly tried BCGS when I got the apparently-mistaken impression from http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/KSP/KSPSetNormType.html that -ksp_norm_type wouldn't work with GMRES. --- Roy ------------------------------------------------------------------------------ Dive into the World of Parallel Programming! The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net _______________________________________________ Libmesh-devel mailing list Libmesh-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libmesh-devel