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

Dmitry Karpeev karpeev at mcs.anl.gov
Fri Nov 4 10:41:01 CDT 2011


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>


More information about the petsc-dev mailing list