<div class="gmail_quote">On Thu, Nov 4, 2010 at 09:43, Benjamin Sanderse <span dir="ltr">&lt;<a href="mailto:B.Sanderse@cwi.nl">B.Sanderse@cwi.nl</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div id=":2j6">I am working on a CFD code which calculates differences, averages, interpolations, etc. by computing matrix-vector and matrix-matrix products. The basis here is formed by (very) sparse matrices and extension to more dimensions is done with kronecker products.<br>

This works fine one a single processor; however, before implementing things in parallel I have two questions:<br>
<br>
- is there a way to compute kronecker products efficiently in parallel with Petsc?<br></div></blockquote><div><br></div><div>You could store the constitutive pieces in a MatShell.  What do you have to do with the result<b> </b>(multiply with, solve with, compute singular values of, etc)?  What is the relative size and sparsity of each piece?  Would you be willing to reorder unknowns in the vector (perhaps with a scatter) for a more efficient implementation?</div>
<div><br></div><div>Jed</div></div>