<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br></div>   Well you are doing nothing wrong. When I run the code I get the same results as you. I dump the matrix into Matlab and it has a negative eigenvalue so the example is wrong. The code is handling it correctly. <div><br></div><div><div>>> eig(full(Mat_0))</div><div><br></div><div>ans =</div><div><br></div><div>   -0.8042</div><div>    0.1716</div><div>    0.6489</div><div>    1.0000</div><div>    1.0000</div><div>    1.0000</div><div>    1.0000</div><div><br></div><div>   I am cc:iing Victor who supposedly wrote the original example.</div><div><br></div><div>   Barry</div><div><br></div><div>Attached is the matrix saved with -mat_view_matlab</div><div><br></div><div><br></div><div><br><div><div>On Aug 23, 2010, at 11:17 PM, Anush Krishnan wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Message: 6<br>
Date: Mon, 23 Aug 2010 18:40:34 -0500<br>
From: Barry Smith <<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>><br>
Subject: Re: [petsc-dev] Problem with conjugate gradient solver<br>
To: For users of the development version of PETSc<br>
        <<a href="mailto:petsc-dev@mcs.anl.gov">petsc-dev@mcs.anl.gov</a>><br>
Message-ID: <<a href="mailto:6432610F-F243-4C9C-AB6A-0944221AE18D@mcs.anl.gov">6432610F-F243-4C9C-AB6A-0944221AE18D@mcs.anl.gov</a>><br>
Content-Type: text/plain; charset=us-ascii<br>
<br>
<br>
On Aug 23, 2010, at 2:31 PM, Anush Krishnan wrote:<br>
<br>
> Hi,<br>
><br>
> I was trying to compile and run the example file $PETSC_DIR/src/ksp/pc/examples/tutorials/ex3.c, which demonstrates PETSc's preconditioned conjugate gradient solver for a system of linear equations. After compiling, running make runex3 is supposed to throw up the error "Divergence because of indefinite preconditioner" and running make runex3_pd is supposed to work and give the correct solution. But instead I get the error "Other kind of divergence: this should not happen." for the latter. Is there some bug in the code, or are there any other options that need to be set?<br>


<br>
   Hmm, worked for me.<br>
<br>
    Please hg pull; hg update then rebuild PETSc and run the make runex3 runex3_pd again and send the output. I added to that example what reason it did have to maybe help determine the problem. Or you can run the example with the options given in the makefile and also the option -ksp_converged_reason<br>

</blockquote><div><br>I've attached the outputs I got with runex3 and runex3_pd (1 and 2 respectively. I commented out the statements after the execute commands to prevent deletion of the generated output files). This was on revision 16788.<br>

<br>Thanks,<br>Anush<br>  <br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
<br>
   Barry<br>
<br>
><br>
> Thanks,<br>
> Anush<br></blockquote></div>
<span><ex3_inode.out_1></span><span><ex3_inode.out_2></span><span><ex3.tmp_1></span><span><ex3.tmp_2></span></blockquote></div></div></div></body></html>