What's the API for specifying a redundant D? On Fri, Nov 4, 2011 at 10:23 AM, Jed Brown <jedbrown at mcs.anl.gov> wrote:
> On Fri, Nov 4, 2011 at 09:13, Matthew Knepley <knepley at gmail.com> wrote: > >> So that means the construction layout of C should mirror B. I wonder if >> that is strange. >> > > The ownership rows of B are normally the same as the ownership rows of A. > Similarly for columns of C. > > >> Also, does D have a few rows on each proc, meaning B would be spread out >> too? >> > > It doesn't matter where D (usually dense) is stored because it will > typically be used redundantly. (These algorithms only make sense when D is > pretty small. In practice, it is usually less than 10x10.) > > >> We can easily implement MatSetValues_Transpose() to facilitate convenient >>> assembly of bordered systems using MatSetValuesLocal(). Does anyone have a >>> better idea for constructing these things? >>> >> >> Constructing B and C together I think might be the easiest, and having an >> option for C = B^T. >> > > You construct them together, but you want C to have a column partition, > otherwise some process will be overloaded. > > >> >> >>> The Woodbury formula stuff can probably be a new PC that operates on a >>> MATSCHURCOMPLEMENT by doing direct solves with the eliminated matrix >>> (typically redundantly in this case, because the dimension should be small >>> for this to make sense). Other API suggestions? >>> >> >> I think we need an example. >> > > You just apply the formula. Setup involves solving (perhaps approximately) > with a few vectors, then the convergence is rate is normally the same as > for A, with a few extra vector operations per iteration. > > http://en.wikipedia.org/wiki/Woodbury_matrix_identity > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20111104/273021a5/attachment.html>
