On Tue, Oct 23, 2012 at 10:19 AM, shu guo <span dir="ltr"><<a href="mailto:greatgs2008@gmail.com" target="_blank">greatgs2008@gmail.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div id=":f4r">I am solving a electromagnetic problem. Each node has 4 degree of<br>
freedom, phi A1 A2 A3.<br>
<br>
The row in this blocked matrix is generated as<br>
<br>
               node1         |      node 2                 |         node 3<br>
                                 |                                |<br>
phi1 A1_1 A1_2 A1_3 | phi2 A2_1 A2_2 A2_3| phi3 A3_1 A3_2 A3_3<br>
<br>
And I permute it as<br>
<br>
phi matrix      ||                A matrix<br>
phi1 phi2 phi3 || A1_1 A1_2 A1_3 A2_1 A2_2 A2_3 A3_1 A3_2 A3_3<br>
<br>
I permuted it just want to sort each variables together.<br></div></blockquote><div><br></div><div>Why? This just destroys the locality that makes BAIJ efficient. See the effect of "field interlacing" here (still true today).</div>
<div><br></div><div><a href="http://www.mcs.anl.gov/~kaushik/Papers/parco01.pdf">http://www.mcs.anl.gov/~kaushik/Papers/parco01.pdf</a></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div id=":f4r">
<div class="im"><br>
> Just build an index set that has every part of the block. If you need<br>
> arbitrary scalar subsets, use MPIAIJ (can use MatConvert).<br>
<br>
</div>If I want the submatrix from original matrix, can you be more specific<br>
that how the index set looks like? And is it possible for me to merely<br>
get the submatrix of the ist DOF of each element? Thank you.</div></blockquote></div><br><div>Create an index set with [0,4,8,...], but use the AIJ format.<br><br>You can request support for BAIJ here, but I'm afraid it's not going to be considered high priority because the potential benefits of BAIJ over AIJ are quite small if you are taking submatrices. <a href="https://bitbucket.org/petsc/petsc-dev/issues">https://bitbucket.org/petsc/petsc-dev/issues</a></div>