Vaclav:<div class="gmail_quote"><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>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><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>MatMerge_SeqsToMPI - Creates a MPIAIJ matrix by adding sequential</div><div>                 matrices from each processor .</div>
<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>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>Thanks for the report, which helps us improve petsc library.</div>
<div><br></div><div>Hong </div></div><br>