<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif">A strange behavior I am observing is:<br></div><div class="gmail_default" 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><br>MatMult(A, x_exact, dummy);// Storing the value of A*x_exact in dummy<br>VecAXPY(dummy, -1.0, rhs); // dummy = dummy -rhs<br>VecNorm(dummy, NORM_INFINITY, &norm_val); // norm_val = ||dummy||, which gives us the residual norm<br>PetscPrintf(PETSC_COMM_SELF, "Norm = %f\n", norm_val); // Printing the norm.<br><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">// Starting with the linear solver<br></div><div class="gmail_default" style="font-family:verdana,sans-serif">KSPCreate(PETSC_COMM_SELF, &ksp);<br>KSPSetOperators(ksp, A, A);<br>KSPSetFromOptions(ksp);<br>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><br></div><div class="gmail_default" 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>Norm = 0.000000<br>  0 KSP Residual norm 4.371606462669e+04 <br>  1 KSP Residual norm 5.850058113796e+02 <br>  2 KSP Residual norm 5.832677911508e+02 <br>  3 KSP Residual norm 1.987386549571e+02 <br>  4 KSP Residual norm 1.220006530614e+02<br>  .<br>  .<br>  .<br><br></div><div class="gmail_default" 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><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Thanks,<br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Kaushik<br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Apr 11, 2017 at 10:08 AM, Kaushik Kulkarni <span dir="ltr"><<a href="mailto:kaushikggg@gmail.com" target="_blank">kaushikggg@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 dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif">Thank you for the inputs. <br></div><div class="gmail_default" 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>240 KSP Residual norm 1.722571678777e+07 <br>Linear solve did not converge due to DIVERGED_DTOL iterations 240<br></div><div class="gmail_default" 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><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Thanks,<br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Kaushik<br></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Apr 11, 2017 at 1:04 AM, Xiaoye S. Li <span dir="ltr"><<a href="mailto:xsli@lbl.gov" target="_blank">xsli@lbl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>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><br></div><div>Sherry<br></div></div><div class="m_1856045536358622159HOEnZb"><div class="m_1856045536358622159h5"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Apr 10, 2017 at 12:07 PM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
   I would suggest using ./configure --download-superlu and then when running the program -pc_type lu -pc_factor_mat_solver_package superlu<br>
<br>
   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>
<br>
    Barry<br>
<br>
> On Apr 10, 2017, at 1:17 PM, Kaushik Kulkarni <<a href="mailto:kaushikggg@gmail.com" target="_blank">kaushikggg@gmail.com</a>> wrote:<br>
><br>
> Hello,<br>
> 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>
><br>
> 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>
><br>
> C​an someone please suggest what all could I try next, in order to make the solution converge?<br>
><br>
> Thanks,<br>
> Kaushik<br>
> ​<br>
<span class="m_1856045536358622159m_6594076061433883875HOEnZb"><font color="#888888">> --<br>
> Kaushik Kulkarni<br>
> Fourth Year Undergraduate<br>
> Department of Mechanical Engineering<br>
> Indian Institute of Technology Bombay<br>
> Mumbai, India<br>
> <a href="https://kaushikcfd.github.io/About/" rel="noreferrer" target="_blank">https://kaushikcfd.github.io/A<wbr>bout/</a><br>
> <a href="tel:%2B91-9967687150" value="+919967687150" target="_blank">+91-9967687150</a><br>
> <matrix.log><<a href="http://matrix_pattern.pn" target="_blank">matrix_pattern.pn</a><wbr>g><br>
<br>
</font></span></blockquote></div><br></div>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><div class="m_1856045536358622159gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><span style="color:rgb(153,153,153)"><font size="1"><span style="font-family:monospace,monospace"><span><div><div dir="ltr"><span><div><div dir="ltr"><span><div><div dir="ltr"><div><div dir="ltr"><span><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><span><div><div dir="ltr"><span><div><div dir="ltr"><span><div><div dir="ltr"><div><div dir="ltr"><span><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><span><div><div dir="ltr"><span><div><div dir="ltr"><span><div><div dir="ltr"><div><div dir="ltr"><span><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><font size="1"><span style="font-family:monospace,monospace"><span><div><div dir="ltr"><span><div><div dir="ltr"><span><div><div dir="ltr"><div><div dir="ltr"><span><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><font size="1"><span style="font-family:monospace,monospace"><span><div><div dir="ltr"><span><div><div dir="ltr"><span><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr">Kaushik Kulkarni<br>Fourth Year Undergraduate</div><div dir="ltr">Department of Mechanical Engineering<br>Indian Institute of Technology Bombay</div><div dir="ltr">Mumbai, India<br><a href="https://kaushikcfd.github.io/About/" target="_blank">https://kaushikcfd.github.io/<wbr>About/</a><br></div><div>+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><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><span style="color:rgb(153,153,153)"><font size="1"><span style="font-family:monospace,monospace"><span><div><div dir="ltr"><span><div><div dir="ltr"><span><div><div dir="ltr"><div><div dir="ltr"><span><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><span><div><div dir="ltr"><span><div><div dir="ltr"><span><div><div dir="ltr"><div><div dir="ltr"><span><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><span><div><div dir="ltr"><span><div><div dir="ltr"><span><div><div dir="ltr"><div><div dir="ltr"><span><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><font size="1"><span style="font-family:monospace,monospace"><span><div><div dir="ltr"><span><div><div dir="ltr"><span><div><div dir="ltr"><div><div dir="ltr"><span><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><font size="1"><span style="font-family:monospace,monospace"><span><div><div dir="ltr"><span><div><div dir="ltr"><span><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr">Kaushik Kulkarni<br>Fourth Year Undergraduate</div><div dir="ltr">Department of Mechanical Engineering<br>Indian Institute of Technology Bombay</div><div dir="ltr">Mumbai, India<br><a href="https://kaushikcfd.github.io/About/" target="_blank">https://kaushikcfd.github.io/About/</a><br></div><div>+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>