<div dir="ltr">P.S. the individual matrix S is usually rather small, say 3x3 or 6x6<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Apr 1, 2014 at 4:47 PM, Mathis Friesdorf <span dir="ltr"><<a href="mailto:mathisfriesdorf@gmail.com" target="_blank">mathisfriesdorf@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Thanks Jed, this is great. I was trying to implement what was proposed in <a href="http://lists.mcs.anl.gov/pipermail/petsc-users/2011-September/009991.html" target="_blank">http://lists.mcs.anl.gov/pipermail/petsc-users/2011-September/009991.html</a>, by you as I just realised. For this the matrices would be of varying size, so for three local systems, I would need:<br>

<br>S \otimes Id \otimes Id ; Id \otimes S \otimes Id ; Id \otimes Id \otimes S.<br><br>Realistic systems are of the order of at least 20 local systems, which would mean that I need the matrices of the above structure for all 20 possible positions.<br>

<br>Again, I really appreciate the help. Thanks, Mathis<br></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Apr 1, 2014 at 4:39 PM, Jed Brown <span dir="ltr"><<a href="mailto:jed@jedbrown.org" target="_blank">jed@jedbrown.org</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Mathis Friesdorf <<a href="mailto:mathisfriesdorf@gmail.com" target="_blank">mathisfriesdorf@gmail.com</a>> writes:<br>


<br>
> Thanks Jed! The libaries you are pointing to look very interesting indeed.<br>
> For the particular implementation I have in mind, I was hoping to get away<br>
> with something easier, as my time to work on this is a bit limited. All I<br>
> really need is a way to construct a block-diagonal matrix where each block<br>
> is given by the same matrix and all blocks are on the diagonal. Am I wrong<br>
> to assume that this should be possible to implement with TAIJ?<br>
<br>
</div>That is exactly TAIJ.  How large are the diagonal blocks?  The<br>
implementation is intended to be fast only for small sizes, though I<br>
could make it good for large sizes as well.  In the special case of<br>
<br>
  (I \otimes S) X<br>
<br>
where I is the sparse identity and S is the dense diagonal block, this<br>
involves interpreting X as a matrix rather than a vector and using dgemm.<br>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>