Some matrices are just used to compute matrix-vector products, and some have to be solved for. That's basically it. The matrices are really very sparse; on the order of 10-20 diagonals (typically independent of problem size). As far as I know, reordering is hardly necessary, because I am using a structured grid.
Ben ----- Original Message ----- From: "Jed Brown" <[email protected]> To: "PETSc users list" <petsc-users at mcs.anl.gov> Sent: Thursday, November 4, 2010 3:50:43 PM Subject: Re: [petsc-users] kronecker products On Thu, Nov 4, 2010 at 09:43, Benjamin Sanderse <B.Sanderse at cwi.nl> wrote: > 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. > This works fine one a single processor; however, before implementing things > in parallel I have two questions: > > - is there a way to compute kronecker products efficiently in parallel with > Petsc? > You could store the constitutive pieces in a MatShell. What do you have to do with the result* *(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? Jed
