On Thu, Aug 6, 2009 at 8:18 AM, Umut Tabak <span dir="ltr">&lt;<a href="mailto:u.tabak@tudelft.nl">u.tabak@tudelft.nl</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;">
Dear all,<br>
<br>
I am trying some block matrix assembly in Petsc, so far, I was puzzling with the right calling and set up of MatSetValuesBlocked. Matthew Knepley confirmed my previous post. I guess it is the function I should use. But it accepts the values as a 1D array, which is  represented in row major order(by default). So the burden on this approach is to convert my Matrix into a 1D array, this seemed as the only solution for the moment. If I would like to use this function.</blockquote>
<div><br>I need to understand what you mean here. The 1D array we accept here is the input values. It is physically 1D, but conceptually<br>2D, and by default is in row-major order. This has nothing to do with your larger Mat object.<br>
 </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
Another way I could think of by reading the documentation of Matrices, is to use MatGetColumnVector and assign over column vectors, but the above approach is far more efficient, I guess.</blockquote><div><br>You cannot assign that way, only through MatSetValues*().<br>
 </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
BTW, some blocks are square and some are rectangular, with block size type operations, I guess it is not possible to assign rectangular matrices to some part of a larger square matrix.</blockquote><div><br>Not true. You can have any mxn dimension to the input values. I think there is some underlying confusion here<br>
that I do not understand. I would suggest you look at the example in the manual.<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;">
<br>
Are there any other efficient suggestions?<br>
<br>
Best regards,<br><font color="#888888">
Umut<br>
</font></blockquote></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>