[petsc-dev] Bordered systems and low-rank corrections

Matthew Knepley knepley at gmail.com
Fri Nov 4 10:13:48 CDT 2011


On Fri, Nov 4, 2011 at 3:04 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote:

> We have seen two requests recently for closely related concepts: bordered
> systems containing dense rows and low-rank corrections. A bordered system
> has a block form
>
> A B
> C D
>
> where A is something "usual", B consists of a few dense columns, and C
> consists of a few dense rows. We can store this efficiently in PETSc using
> MATNEST where A is any matrix type, B has type MATDENSE, and C has type
> MATTRANSPOSE encapsulating an MATDENSE.
>

So that means the construction layout of C should mirror B. I wonder if
that is strange. Also, does D have a few rows on each proc, meaning B would
be spread out too?


> Of course we can use a FieldSplit approach to solve with this, producing a
> low-rank correction appearing from the Schur complement of D: S = A - B
> D^{-1} C. Since D is usually very small and dense, we may have its inverse
> explicitly. S can be solved with using the Woodbury formula, provided you
> have a standard preconditioner for A.
>

This would be useful to have.


> 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.


> 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.

   Matt

-- 
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20111104/bff9ccd3/attachment.html>


More information about the petsc-dev mailing list