<div class="gmail_quote">On Sun, Feb 26, 2012 at 21:10, Hong Zhang <span dir="ltr"><<a href="mailto:hzhang@mcs.anl.gov">hzhang@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">
Vaclav:<div class="gmail_quote"><div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I feel that it is quite incorrect that MatMerge calls MatDestroy(&inmat) since this corrupts "garbage collection" - inmat is destroyed but only nullified in MatMerge. It remains unchanged outside so subsequent MatDestroy call fails. I think that there is no reason for this destroy, if am right, MatMerge does not corrupt the inmat so it can be reused and then destroyed manually.<br>

</blockquote></div><div>MatMerge():</div><div> Creates a single large PETSc matrix by concatenating local sequential</div><div>                 matrices from each processor. </div><div>It was written for petsc internal use (private function), and only works</div>

<div>for mpiaij format. Thanks for the suggestion. I'll remove MatDestroy(&inmat) from </div><div>MatMerge().</div></div></blockquote><div><br></div><div>I think it should also be renamed to something like MatCreateMPIAIJConcatenateSeqAIJ(). It doesn't make semantic sense for general matrices because those need not be stored using a row partition.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_quote"><div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<br>
The second question is - what is the principal difference between MatMerge and MatMerge_SeqsToMPI - I am confused a bit.<br></blockquote></div><div>MatMerge_SeqsToMPI - Creates a MPIAIJ matrix by adding sequential</div><div>
                 matrices from each processor .</div><div class="im">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
And I have finally one note about MatMerge_SeqsToMPI manual page: there is instead a synopsis of MatMerge_SeqsToMPINumeric because this comment is located above the MatMerge_SeqsToMPINumeric function in source.<br></blockquote>

</div><div>I fixed this in petsc-3.2, and will merge to petsc-dev.</div><div><br></div><div>We may need rename these two functions for better understanding.</div></div></blockquote><div><br></div><div>MatCreateMPIAIJSumSeqAIJ()?</div>
</div>