<div>Thanks, then i should change my idea abut matrix evaluation in Petsc. I will try to keep matrix in the same structure during successive iterations.<br><br></div>
<div class="gmail_quote">On Sat, Oct 1, 2011 at 7:26 PM, Matthew Knepley <span dir="ltr">&lt;<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div class="im">On Sat, Oct 1, 2011 at 10:44 AM, behzad baghapour <span dir="ltr">&lt;<a href="mailto:behzad.baghapour@gmail.com" target="_blank">behzad.baghapour@gmail.com</a>&gt;</span> wrote:<br></div>
<div class="gmail_quote">
<div class="im">
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div>OK. All I am concering is:</div>
<div> </div>
<div>1- define matrix A in sparse format AIJ.</div>
<div>2- Get the content of A.</div>
<div>3- change the content of A for some elements</div>
<div>4- Restore the changed matrix back into origin.</div>
<div> </div>
<div>I test MatGetArray( Mat A, PetscScalar* a ) but I couldnt find the correct content of matrix by using a[i*n+j]. I need to know how to access the elements of an assembled sparse matrix.<br><br></div>
<div>Am I clear now?</div></blockquote>
<div><br></div></div>
<div>No, definitely do not do that. The whole point of PETSc matrices is that you do not do this. This is what</div>
<div>is wrong with 90% of numerical software. You want <b>interfaces</b>, not data structures. That allows you</div>
<div>to seamlessly</div>
<div><br></div>
<div>  - work in parallel</div>
<div>  - work on GPUs</div>
<div>  - optimize for different architectures</div>
<div><br></div>
<div>What you want to do is use MatSetValues() (or MatZeroRows, etc.) to change your entries.</div>
<div><br></div>
<div>    Matt</div>
<div class="im">
<div> </div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div> </div>
<div>Thanks</div>
<div>Behzad</div>
<div> </div>
<div class="gmail_quote">On Sat, Oct 1, 2011 at 6:56 PM, Jed Brown <span dir="ltr">&lt;<a href="mailto:jedbrown@mcs.anl.gov" target="_blank">jedbrown@mcs.anl.gov</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div class="gmail_quote">
<div>On Sat, Oct 1, 2011 at 10:23, behzad baghapour <span dir="ltr">&lt;<a href="mailto:behzad.baghapour@gmail.com" target="_blank">behzad.baghapour@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">I meant by MatAssembly, the global indices of matrix elements (related to a dense format) which is changed into sparse one.</blockquote>

<div><br></div></div>
<div>I don&#39;t understand what you mean. It doesn&#39;t make sense to convert &quot;dense&quot; indices into sparse ones.</div>
<div>
<div> </div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">So what would be right pattern to read the content of the Matrix from MatGetArray if I know that the original matrix is created by AIJ?</blockquote>
</div></div><br>
<div>Use MatGetRow() if you need access to this. (The internal data structures are different in parallel and serial, so accessing them directly is bad.)</div></blockquote></div><br><font color="#888888"><br clear="all"><br>
-- <br>==================================<br>Behzad Baghapour<br>Ph.D. Candidate, Mechecanical Engineering<br>University of Tehran, Tehran, Iran<br><a href="https://sites.google.com/site/behzadbaghapour" target="_blank">https://sites.google.com/site/behzadbaghapour</a><br>
Fax: 0098-21-88020741<br>==================================<br><br></font></blockquote></div></div><br><br clear="all">
<div>
<div></div>
<div class="h5">
<div><br></div>-- <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></div></div></blockquote>
</div><br><br clear="all"><br>-- <br>==================================<br>Behzad Baghapour<br>Ph.D. Candidate, Mechecanical Engineering<br>University of Tehran, Tehran, Iran<br><a href="https://sites.google.com/site/behzadbaghapour" target="_blank">https://sites.google.com/site/behzadbaghapour</a><br>
Fax: 0098-21-88020741<br>==================================<br><br>