<div dir="ltr"><div><div>VBR like in this link, use 6 arrays to represent a matrix.<br><a href="http://docs.oracle.com/cd/E19061-01/hpc.cluster5/817-0086-10/prog-sparse-support.html" target="_blank">http://docs.oracle.com/cd/E19061-01/hpc.cluster5/817-0086-10/prog-sparse-support.html</a><br>




<br></div>Each row is a vertex in the graph, , and use parmetis to partition the graph to minimize the number of cuts between different processors. (reduce communication when calculate Matrix-Vector)<br></div>The matrix is calculated from Jacobian and construct the A and b from the result of Jacobian (in VBR).<br>

<br>
</div><div class="gmail_extra"><br clear="all"><div><div dir="ltr">Best regards,<div>Longxiang Chen</div><div><br></div><div>Do something every day that gets you closer to being done.</div><div>--------------------------------------------------------------</div>

<div>465 Winston Chung Hall</div><div>Computer Science Engineering</div><div>University of California, Riverside</div><div><br></div></div></div>
<br><br><div class="gmail_quote">On Tue, May 14, 2013 at 2:51 PM, Jed Brown <span dir="ltr"><<a href="mailto:jedbrown@mcs.anl.gov" target="_blank">jedbrown@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">

<p dir="ltr">What kind of VBR matrix? What are you partitioning using parmetis? A mesh? The blocks of the matrix? How do you create the entries in the matrix?</p><div class="HOEnZb"><div class="h5">
<div class="gmail_quote">On May 14, 2013 4:36 PM, "Longxiang Chen" <<a href="mailto:suifengls@gmail.com" target="_blank">suifengls@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div dir="ltr"><div><div><div><div><div><div>To whom it may concern,<div><br></div>I use <span>parmetis</span> to partition a mesh for a sparse matrix.<br></div>Then I distribute the data to the  appropriate processors according to the result of partition.<br>




</div><br>The sparse matrix is stored in Variable Block Row(<span>VBR</span>) format.<br></div>After the distribution, I want to call <span>PETSc</span> <span>KSP</span> solver to solve Ax = b.<br>

</div>I tried to convert <span>VBR</span> to <span>AIJ</span> or <span>CSR</span> format, but the data would be re-distributed.<br><br>The ideal method is to keep the distribution result from <span>parmetis</span>.<br>

</div><div>For example, after <span>parmetis</span>, processor 0 has 0, 1, 4, and processor 1 has 2, 3, 5. I wish the <span>PETSc</span> would not change this distribution and solve Ax = b.<br>

</div><div><br>Are there any approaches to call <span>KSP</span> solver in <span>VBR</span> format from <span>PETSc</span>?<br></div>Or any suggestions for solving Ax = b?<br>
<br>
</div>Thanks in advance.<br><div><div><div><div><div><div><div><div><div><div><div><div><br></div><div>Regards,<div><span>Longxiang</span> Chen</div><div><br></div></div>
</div></div></div></div></div></div></div></div></div></div></div></div>
</blockquote></div>
</div></div></blockquote></div><br></div>