<div><div><br></div></div><div><br><div class="gmail_quote"><div>On Tue, 11 Apr 2017 at 07:28, Kaushik Kulkarni <<a href="mailto:kaushikggg@gmail.com">kaushikggg@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_msg"><div class="gmail_default gmail_msg" style="font-family:verdana,sans-serif">A strange behavior I am observing is:<br class="gmail_msg"></div><div class="gmail_default gmail_msg" style="font-family:verdana,sans-serif">Problem: I have to solve A*x=rhs, and currently I am currently trying to solve for a system where I know the exact solution. I have initialized the exact solution in the Vec x_exact.<br class="gmail_msg"><br class="gmail_msg">MatMult(A, x_exact, dummy);// Storing the value of A*x_exact in dummy<br class="gmail_msg">VecAXPY(dummy, -1.0, rhs); // dummy = dummy -rhs<br class="gmail_msg">VecNorm(dummy, NORM_INFINITY, &norm_val); // norm_val = ||dummy||, which gives us the residual norm<br class="gmail_msg">PetscPrintf(PETSC_COMM_SELF, "Norm = %f\n", norm_val); // Printing the norm.<br class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_default gmail_msg" style="font-family:verdana,sans-serif">// Starting with the linear solver<br class="gmail_msg"></div><div class="gmail_default gmail_msg" style="font-family:verdana,sans-serif">KSPCreate(PETSC_COMM_SELF, &ksp);<br class="gmail_msg">KSPSetOperators(ksp, A, A);<br class="gmail_msg">KSPSetFromOptions(ksp);<br class="gmail_msg">KSPSolve(ksp,rhs,x_exact); // Solving the system A*x= rhs, with the given initial input x_exact. So the result will also be stored in x_exact<br class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_default gmail_msg" style="font-family:verdana,sans-serif">On running with -pc_type lu -pc_factor_mat_solver_package superlu -ksp_monitor I get the following output:<br class="gmail_msg">Norm = 0.000000<br class="gmail_msg">  0 KSP Residual norm 4.371606462669e+04 <br class="gmail_msg">  1 KSP Residual norm 5.850058113796e+02 <br class="gmail_msg">  2 KSP Residual norm 5.832677911508e+02 <br class="gmail_msg">  3 KSP Residual norm 1.987386549571e+02 <br class="gmail_msg">  4 KSP Residual norm 1.220006530614e+02<br class="gmail_msg">  .<br class="gmail_msg">  .<br class="gmail_msg">  .</div></div></blockquote><div><br></div><div>The default KSP is left preconditioned GMRES. Hence the above iterates report the preconditioned residual. If your operator is singular, and LU generated garbage, the preconditioned residual can be very different to the true residual.</div><div><br></div><div>To see the true residual, use</div><div>-ksp_monitor_true_residual</div><div><br></div><div>Alternatively, use a right preconditioned KSP method, e.g. </div><div>-ksp_type fgmres</div><div>(or -ksp_type gcr) </div><div>With these methods, you will see the true residual with just -ksp_monitor</div><div><br></div><div><br></div><div>Thanks</div><div>  Dave</div><div><br></div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_msg"><div class="gmail_default gmail_msg" style="font-family:verdana,sans-serif"><br class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_default gmail_msg" style="font-family:verdana,sans-serif">Since the initial guess is the exact solution should'nt the first residual itself be zero and converge in one iteration.<br class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_default gmail_msg" style="font-family:verdana,sans-serif">Thanks,<br class="gmail_msg"></div><div class="gmail_default gmail_msg" style="font-family:verdana,sans-serif">Kaushik<br class="gmail_msg"></div><div class="gmail_default gmail_msg" style="font-family:verdana,sans-serif"><br class="gmail_msg"></div></div><div class="gmail_extra gmail_msg"><br class="gmail_msg"><div class="gmail_quote gmail_msg">On Tue, Apr 11, 2017 at 10:08 AM, Kaushik Kulkarni <span class="gmail_msg"><<a href="mailto:kaushikggg@gmail.com" class="gmail_msg" target="_blank">kaushikggg@gmail.com</a>></span> wrote:<br class="gmail_msg"><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_msg"><div class="gmail_default gmail_msg" style="font-family:verdana,sans-serif">Thank you for the inputs. <br class="gmail_msg"></div><div class="gmail_default gmail_msg" style="font-family:verdana,sans-serif">I tried Barry' s suggestion to use SuperLU, but the solution does not converge and on doing -ksp_monitor -ksp_converged_reason. I get the following error:- <br class="gmail_msg">240 KSP Residual norm 1.722571678777e+07 <br class="gmail_msg">Linear solve did not converge due to DIVERGED_DTOL iterations 240<br class="gmail_msg"></div><div class="gmail_default gmail_msg" style="font-family:verdana,sans-serif">For some reason it is diverging, although I am sure that for the given system a unique solution exists.<br class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_default gmail_msg" style="font-family:verdana,sans-serif">Thanks,<br class="gmail_msg"></div><div class="gmail_default gmail_msg" style="font-family:verdana,sans-serif">Kaushik<br class="gmail_msg"></div></div><div class="m_3238410208736660839HOEnZb gmail_msg"><div class="m_3238410208736660839h5 gmail_msg"><div class="gmail_extra gmail_msg"><br class="gmail_msg"><div class="gmail_quote gmail_msg">On Tue, Apr 11, 2017 at 1:04 AM, Xiaoye S. Li <span class="gmail_msg"><<a href="mailto:xsli@lbl.gov" class="gmail_msg" target="_blank">xsli@lbl.gov</a>></span> wrote:<br class="gmail_msg"><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_msg"><div class="gmail_msg">If you need to use SuperLU_DIST, the pivoting is done statically, using maximum weighted matching, so the small diagonals are usually taken care as well. It is not as good as partial pivoting, but works most of the time.<br class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Sherry<br class="gmail_msg"></div></div><div class="m_3238410208736660839m_1856045536358622159HOEnZb gmail_msg"><div class="m_3238410208736660839m_1856045536358622159h5 gmail_msg"><div class="gmail_extra gmail_msg"><br class="gmail_msg"><div class="gmail_quote gmail_msg">On Mon, Apr 10, 2017 at 12:07 PM, Barry Smith <span class="gmail_msg"><<a href="mailto:bsmith@mcs.anl.gov" class="gmail_msg" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br class="gmail_msg"><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br class="gmail_msg">
   I would suggest using ./configure --download-superlu and then when running the program -pc_type lu -pc_factor_mat_solver_package superlu<br class="gmail_msg">
<br class="gmail_msg">
   Note that this is SuperLU, it is not SuperLU_DIST.  Superlu uses partial pivoting for numerical stability so should be able to handle the small or zero diagonal entries.<br class="gmail_msg">
<br class="gmail_msg">
    Barry<br class="gmail_msg">
<br class="gmail_msg">
> On Apr 10, 2017, at 1:17 PM, Kaushik Kulkarni <<a href="mailto:kaushikggg@gmail.com" class="gmail_msg" target="_blank">kaushikggg@gmail.com</a>> wrote:<br class="gmail_msg">
><br class="gmail_msg">
> Hello,<br class="gmail_msg">
> I am trying to solve a 2500x2500 sparse matrix. To get an idea about the matrix structure I have added a file matrix.log which contains the output of MatView() and also the output of Matview_draw in the image file.<br class="gmail_msg">
><br class="gmail_msg">
> From the matrix structure it can be seen that Jacobi iteration won't work and some of the diagonal entries being very low(of the order of 1E-16) LU factorization would also fail.<br class="gmail_msg">
><br class="gmail_msg">
> C​an someone please suggest what all could I try next, in order to make the solution converge?<br class="gmail_msg">
><br class="gmail_msg">
> Thanks,<br class="gmail_msg">
> Kaushik<br class="gmail_msg">
> ​<br class="gmail_msg">
<span class="m_3238410208736660839m_1856045536358622159m_6594076061433883875HOEnZb gmail_msg"><font color="#888888" class="gmail_msg">> --<br class="gmail_msg">
> Kaushik Kulkarni<br class="gmail_msg">
> Fourth Year Undergraduate<br class="gmail_msg">
> Department of Mechanical Engineering<br class="gmail_msg">
> Indian Institute of Technology Bombay<br class="gmail_msg">
> Mumbai, India<br class="gmail_msg">
> <a href="https://kaushikcfd.github.io/About/" rel="noreferrer" class="gmail_msg" target="_blank">https://kaushikcfd.github.io/About/</a><br class="gmail_msg">
> <a href="tel:%2B91-9967687150" value="+919967687150" class="gmail_msg" target="_blank">+91-9967687150</a><br class="gmail_msg">
> <matrix.log><<a href="http://matrix_pattern.pn" class="gmail_msg" target="_blank">matrix_pattern.pn</a>g><br class="gmail_msg">
<br class="gmail_msg">
</font></span></blockquote></div><br class="gmail_msg"></div>
</div></div></blockquote></div><br class="gmail_msg"><br clear="all" class="gmail_msg"><br class="gmail_msg">-- <br class="gmail_msg"><div class="m_3238410208736660839m_1856045536358622159gmail_signature gmail_msg" data-smartmail="gmail_signature"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span style="color:rgb(153,153,153)" class="gmail_msg"><font size="1" class="gmail_msg"><span style="font-family:monospace,monospace" class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><font size="1" class="gmail_msg"><span style="font-family:monospace,monospace" class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><font size="1" class="gmail_msg"><span style="font-family:monospace,monospace" class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg">Kaushik Kulkarni<br class="gmail_msg">Fourth Year Undergraduate</div><div class="gmail_msg">Department of Mechanical Engineering<br class="gmail_msg">Indian Institute of Technology Bombay</div><div class="gmail_msg">Mumbai, India<br class="gmail_msg"><a href="https://kaushikcfd.github.io/About/" class="gmail_msg" target="_blank">https://kaushikcfd.github.io/About/</a><br class="gmail_msg"></div><div class="gmail_msg">+91-9967687150</div></div></div></div></div></span></div></div></span></div></div></span></span></font></div></div></div></div></div></div></div></div></div></div></span></div></div></div></div></span></div></div></span></div></div></span></span></font></div></div></div></div></div></div></div></div></span></div></div></div></div></span></div></div></span></div></div></span></div></div></div></div></div></div></span></div></div></div></div></span></div></div></span></div></div></span></div></div></div></div></div></div></div></div></span></div></div></div></div></span></div></div></span></div></div></span></span></font></span></div></div></div></div></div></div></div></div></div></div></div></div></div></div>
</div>
</div></div></blockquote></div><br class="gmail_msg"><br clear="all" class="gmail_msg"><br class="gmail_msg">-- <br class="gmail_msg"><div class="m_3238410208736660839gmail_signature gmail_msg" data-smartmail="gmail_signature"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span style="color:rgb(153,153,153)" class="gmail_msg"><font size="1" class="gmail_msg"><span style="font-family:monospace,monospace" class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><font size="1" class="gmail_msg"><span style="font-family:monospace,monospace" class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><font size="1" class="gmail_msg"><span style="font-family:monospace,monospace" class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg">Kaushik Kulkarni<br class="gmail_msg">Fourth Year Undergraduate</div><div class="gmail_msg">Department of Mechanical Engineering<br class="gmail_msg">Indian Institute of Technology Bombay</div><div class="gmail_msg">Mumbai, India<br class="gmail_msg"><a href="https://kaushikcfd.github.io/About/" class="gmail_msg" target="_blank">https://kaushikcfd.github.io/About/</a><br class="gmail_msg"></div><div class="gmail_msg">+91-9967687150</div></div></div></div></div></span></div></div></span></div></div></span></span></font></div></div></div></div></div></div></div></div></div></div></span></div></div></div></div></span></div></div></span></div></div></span></span></font></div></div></div></div></div></div></div></div></span></div></div></div></div></span></div></div></span></div></div></span></div></div></div></div></div></div></span></div></div></div></div></span></div></div></span></div></div></span></div></div></div></div></div></div></div></div></span></div></div></div></div></span></div></div></span></div></div></span></span></font></span></div></div></div></div></div></div></div></div></div></div></div></div></div></div>
</div>
</blockquote></div></div>