<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sun, Sep 20, 2015 at 12:40 PM, Gideon Simpson <span dir="ltr"><<a href="mailto:gideon.simpson@gmail.com" target="_blank">gideon.simpson@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Point taken.  So this comes back to something that I began asking about in a previous thread, but took a detour as you guys identified other problems with my code.  The issue is that I have a DMComposite with two blocks.  One block is of size two, and couples certain pieces of the second block, which is, morally, a vector valued semilinear elliptic equation.  Using grid sequencing, the guesses for the SNES are now quite good, but I’m struggling with the issue of preconditioning the linear problem.  The second block would, presumably, benefit from multigrid, but jacobi doesn’t do such a good job on that. At the same time, the first block, as discussed, has these zeros on the diagonal, and can’t use SOR.</div></blockquote><div><br></div><div>Chebyshev/Jacobi is the obvious next try.</div><div><br></div><div>   Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><div>
<span style="border-collapse:separate;color:rgb(0,0,0);font-family:Helvetica;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">-gideon</span>

</div>
<br><div><blockquote type="cite"><div>On Sep 19, 2015, at 10:43 PM, Barry Smith <<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>> wrote:</div><br><div><br><blockquote type="cite">On Sep 19, 2015, at 9:14 PM, Gideon Simpson <<a href="mailto:gideon.simpson@gmail.com" target="_blank">gideon.simpson@gmail.com</a>> wrote:<br><br>Yes, I know exactly where the zero diagonal entries are.  Is there a way to compensate for that?<br></blockquote><br>  Not really. How can you update x_i if A_ii = 0 ?<br><br><br><blockquote type="cite"><br>-gideon<br><br><blockquote type="cite">On Sep 19, 2015, at 10:09 PM, Barry Smith <<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>> wrote:<br><br><br> Oh, it is a different kind of zero pivot value. There is a zero on the diagonal while it is trying to do SOR.  Should there be zeros on the diagonal of your matrix? <br><br>  You can use -mg_levels_pc_type jacobi  and it will ignore those zero values.<br><br>  Barry<br><br><br><blockquote type="cite">On Sep 19, 2015, at 7:12 PM, Gideon Simpson <<a href="mailto:gideon.simpson@gmail.com" target="_blank">gideon.simpson@gmail.com</a>> wrote:<br><br>I never get to see the output.  When it runs, I get:<br><br> 0 SNES Function norm 8.405398322914e-02 <br>[0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------<br>[0]PETSC ERROR: Zero pivot in LU factorization: <a href="http://www.mcs.anl.gov/petsc/documentation/faq.html#zeropivot" target="_blank">http://www.mcs.anl.gov/petsc/documentation/faq.html#zeropivot</a><br>[0]PETSC ERROR: Zero pivot on row 0<br>[0]PETSC ERROR: See <a href="http://www.mcs.anl.gov/petsc/documentation/faq.html" target="_blank">http://www.mcs.anl.gov/petsc/documentation/faq.html</a> for trouble shooting.<br>[0]PETSC ERROR: Petsc Release Version 3.6.1, unknown <br>[0]PETSC ERROR: ./blowup_refine on a arch-darwin-c-debug named gs_air by gideon Sat Sep 19 20:11:44 2015<br>[0]PETSC ERROR: Configure options --download-mpich=yes --download-suitesparse=yes --download-superlu=yes --download-superlu_dist=yes --download-mumps=yes --download-sprng=yes --with-cxx=clang++ --with-cc=clang --with-fc=gfortran --download-metis=yes --download-parmetis=yes --download-scalapack=yes<br>[0]PETSC ERROR: #1 MatSOR_SeqAIJ_Inode() line 2795 in /opt/petsc/src/mat/impls/aij/seq/inode.c<br>[0]PETSC ERROR: #2 MatSOR_MPIAIJ() line 1496 in /opt/petsc/src/mat/impls/aij/mpi/mpiaij.c<br>[0]PETSC ERROR: #3 MatSOR() line 3697 in /opt/petsc/src/mat/interface/matrix.c<br>[0]PETSC ERROR: #4 PCApply_SOR() line 37 in /opt/petsc/src/ksp/pc/impls/sor/sor.c<br>[0]PETSC ERROR: #5 PCApply() line 483 in /opt/petsc/src/ksp/pc/interface/precon.c<br>[0]PETSC ERROR: #6 KSP_PCApply() line 242 in /opt/petsc/include/petsc/private/kspimpl.h<br>[0]PETSC ERROR: #7 KSPInitialResidual() line 63 in /opt/petsc/src/ksp/ksp/interface/itres.c<br>[0]PETSC ERROR: #8 KSPSolve_GMRES() line 235 in /opt/petsc/src/ksp/ksp/impls/gmres/gmres.c<br>[0]PETSC ERROR: #9 KSPSolve() line 604 in /opt/petsc/src/ksp/ksp/interface/itfunc.c<br>[0]PETSC ERROR: #10 KSPSolve_Chebyshev() line 381 in /opt/petsc/src/ksp/ksp/impls/cheby/cheby.c<br>[0]PETSC ERROR: #11 KSPSolve() line 604 in /opt/petsc/src/ksp/ksp/interface/itfunc.c<br>[0]PETSC ERROR: #12 PCMGMCycle_Private() line 19 in /opt/petsc/src/ksp/pc/impls/mg/mg.c<br>[0]PETSC ERROR: #13 PCApply_MG() line 340 in /opt/petsc/src/ksp/pc/impls/mg/mg.c<br>[0]PETSC ERROR: #14 PCApply() line 483 in /opt/petsc/src/ksp/pc/interface/precon.c<br>[0]PETSC ERROR: #15 KSP_PCApply() line 242 in /opt/petsc/include/petsc/private/kspimpl.h<br>[0]PETSC ERROR: #16 KSPInitialResidual() line 63 in /opt/petsc/src/ksp/ksp/interface/itres.c<br>[0]PETSC ERROR: #17 KSPSolve_GMRES() line 235 in /opt/petsc/src/ksp/ksp/impls/gmres/gmres.c<br>[0]PETSC ERROR: #18 KSPSolve() line 604 in /opt/petsc/src/ksp/ksp/interface/itfunc.c<br>[0]PETSC ERROR: #19 SNESSolve_NEWTONLS() line 233 in /opt/petsc/src/snes/impls/ls/ls.c<br>[0]PETSC ERROR: #20 SNESSolve() line 3906 in /opt/petsc/src/snes/interface/snes.c<br>[1]PETSC ERROR: #1 VecNorm_MPI() line 63 in /opt/petsc/src/vec/vec/impls/mpi/pvec2.c<br>[1]PETSC ERROR: #2 VecNorm() line 242 in /opt/petsc/src/vec/vec/interface/rvector.c<br>[1]PETSC ERROR: #3 VecNormalize() line 337 in /opt/petsc/src/vec/vec/interface/rvector.c<br>[1]PETSC ERROR: #4 KSPGMRESCycle() line 127 in /opt/petsc/src/ksp/ksp/impls/gmres/gmres.c<br>[1]PETSC ERROR: #5 KSPSolve_GMRES() line 236 in /opt/petsc/src/ksp/ksp/impls/gmres/gmres.c<br>[1]PETSC ERROR: #6 KSPSolve() line 604 in /opt/petsc/src/ksp/ksp/interface/itfunc.c<br>[1]PETSC ERROR: #7 KSPSolve_Chebyshev() line 381 in /opt/petsc/src/ksp/ksp/impls/cheby/cheby.c<br>[1]PETSC ERROR: #8 KSPSolve() line 604 in /opt/petsc/src/ksp/ksp/interface/itfunc.c<br>[1]PETSC ERROR: #9 PCMGMCycle_Private() line 19 in /opt/petsc/src/ksp/pc/impls/mg/mg.c<br>[1]PETSC ERROR: #10 PCApply_MG() line 340 in /opt/petsc/src/ksp/pc/impls/mg/mg.c<br>[1]PETSC ERROR: #11 PCApply() line 483 in /opt/petsc/src/ksp/pc/interface/precon.c<br>[1]PETSC ERROR: #12 KSP_PCApply() line 242 in /opt/petsc/include/petsc/private/kspimpl.h<br>[1]PETSC ERROR: #13 KSPInitialResidual() line 63 in /opt/petsc/src/ksp/ksp/interface/itres.c<br>[1]PETSC ERROR: #14 KSPSolve_GMRES() line 235 in /opt/petsc/src/ksp/ksp/impls/gmres/gmres.c<br>[1]PETSC ERROR: #15 KSPSolve() line 604 in /opt/petsc/src/ksp/ksp/interface/itfunc.c<br>[1]PETSC ERROR: #16 SNESSolve_NEWTONLS() line 233 in /opt/petsc/src/snes/impls/ls/ls.c<br>[1]PETSC ERROR: #17 SNESSolve() line 3906 in /opt/petsc/src/snes/interface/snes.c<br><br>and then it just sits there.<br><br>-gideon<br><br><blockquote type="cite">On Sep 19, 2015, at 7:18 PM, Matthew Knepley <<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>> wrote:<br><br>On Sat, Sep 19, 2015 at 6:10 PM, Gideon Simpson <<a href="mailto:gideon.simpson@gmail.com" target="_blank">gideon.simpson@gmail.com</a>> wrote:<br>It gives zero pivots on:<br><br>Send -ksp_view<br><br> Matt<br><br>-ksp_type gmres -pc_type gamg -mg_coarse_sub_pc_factor_shift_type NONZERO<br><br>It has no problem with:<br><br>-ksp_type gmres -pc_type bjacobi -sub_pc_factor_shift_type NONZERO<br><br>-gideon<br><br><blockquote type="cite">On Sep 19, 2015, at 12:37 AM, Barry Smith <<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>> wrote:<br><br><br><blockquote type="cite">On Sep 18, 2015, at 10:42 PM, Gideon Simpson <<a href="mailto:gideon.simpson@gmail.com" target="_blank">gideon.simpson@gmail.com</a>> wrote:<br><br>I’m getting a zero pivot in LU factorization error when I use the gamg preconditioner.  I know there is some issue with my matrix, as I get the same error if I use pc_type lu in serial, or if I use pc_type bjacobi in parallel, both of which are corrected by adding -pc_factor_shift_type NONZERO -sub_pc_factor_shift_type NONZERO, respectively.  However, I can’t quite seem to figure out the analogous command to use for the gamg preconditioner.<br></blockquote><br>You need to figure out the prefix to the option that is added by gamg to set it. One way is to run with the gamg options and -help and grep for factor_shift.<br><br> The option is like something like -mg_coarse_pc_factor_shift_type nonzero or -mg_coarse_sub_pc_factor_shift_type<br><br>Barry<br><br><blockquote type="cite"><br>-gideon<br><br></blockquote><br></blockquote><br><br><br><span class="HOEnZb"><font color="#888888"><br>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener<br></font></span></blockquote><span class="HOEnZb"><font color="#888888"><br></font></span></blockquote><span class="HOEnZb"><font color="#888888"><br></font></span></blockquote><span class="HOEnZb"><font color="#888888"><br></font></span></blockquote><span class="HOEnZb"><font color="#888888"><br></font></span></div></blockquote></div><br></div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>
</div></div>