On Mon, Jan 11, 2010 at 1:21 PM, Barry Smith <span dir="ltr">&lt;<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im"><br>
On Jan 11, 2010, at 12:38 PM, Vasia Kalavri wrote:<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hello.<br>
I could use some help regarding the following issues:<br>
<br>
1. I have created 2 structurally identical MATMPIJ matrices A1 and A2 with N rows and M columns. I want to merge them in order to create a matrix of the double size A3 with 2*N rows and M columns so that the first row of A2 will be the N+1-th row of the new matrix. Is there any function I could use to do this?<br>

</blockquote>
<br></div>
   Since PETSc lays out the matrix rows across processors by having the first set of rows on the first process, the next set of rows on the next process etc. where is your &quot;appended matrix&quot; rows going to live? Do you want the new matrix to have the A1 matrix on the first half of the processors and the A2 matrix on the second half of the processors?<br>

<br>
   PETSc doesn&#39;t have tools for &quot;putting together&quot; collections of sparse parallel matrices, so there is some direct access to the sparse matrix you need to do to get what you want.<br></blockquote><div><br>
Dave May at ETHZ had a package called PetscExt that does compose sparse matrices.<br><br>   Matt<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div class="im"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
2. Is there a way to split a matrix after its values have been set by 1 process? What I have done is to create a MATMPIJ and make that process send the data to the other processes in order to get the distributed matrix. But I hope there is a smarter way to do this!<br>

</blockquote>
<br></div>
   In general one should create the entries to a PETSc matrix on the same number of processors as where the matrix lives so one does not need to &quot;spread out&quot; the matrix entries.<br>
Again, there isn&#39;t code to spread around sparse matrix entries.<br><font color="#888888">
<br>
<br>
   Barry</font><div><div></div><div class="h5"><br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
Any idea is welcome,<br>
Vasia.<br>
<br>
Windows Live: Keep your friends up to date with what you do online.<br>
</blockquote>
<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <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>