<div class="gmail_quote">On Thu, Jan 6, 2011 at 10:04, Raeth, Peter <span dir="ltr">&lt;<a href="mailto:PRaeth@hpti.com">PRaeth@hpti.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
While I can not put my finger on it, I thought I saw on a man page that PETSc was only designed for the solution of sparse matrices.</blockquote></div><br><div>I can try to explain:</div><div><br></div><div>Some choices in PETSc are not great if the problem has no &quot;structure&quot;.  I loosely define &quot;structure&quot; to mean that there is a way to store the forward operator in less than O(N^2) space and that there is a way to multiply the forward operator my a vector in less than O(N^2) time.  In addition to sparse matrices, this includes operators that can be applied using fast transforms like FFT and FMM, have tensor product structure, are the Schur complement or a low-rank correction of something fitting the above description, etc.</div>
<div><br></div><div>If you only solve dense problems with no additional structure, then PETSc cannot have the absolute best performance.  But it should be perfectly adequate for most dense problems and if you have some problems with structure and some dense problems, it offers a uniform high-level interface and a lot of algorithmic flexibility that you won&#39;t find in a dense-only package.</div>