[petsc-dev] API changes in MatIS

Stefano Zampini stefano.zampini at gmail.com
Fri May 11 18:11:46 CDT 2012


2012/5/11 Jed Brown <jedbrown at mcs.anl.gov>
>
> Isn't PtAP still the right operation, you just have a particular
> implementation that takes advantage of structure?
>

yes it is, but since it is an expensive operations (P is dense), in BDDC,
once you solved the local problems to create P, you have almost straigthly
(and at a very low cost) the columns of the coarse matrix. The latter can
be obtained (as it is implemented in the code) as C^T\Lambda where C is the
local sparse  matrix of constraints, and \Lambda is a dense and small
matrix of lagrange multipliers.

> I know you can also assemble B A^{-1} B^T, which is the same thing, and
> maybe we should provide a generic op for that.
>
What is B? the jump operator?


> On May 11, 2012 1:17 PM, "Stefano Zampini" <stefano.zampini at gmail.com>
> wrote:
>
>>
>> 2012/5/11 Jed Brown <jedbrown at mcs.anl.gov>
>>
>>> I don't like this idea of the matrix type determining the algorithm, I'd
>>> rather choose the algorithm.
>>>
>>
>> This is note the case in my BDDC: it is the algorithm that drives the
>> type of matrix to be built.
>>
>>
>>> Can we decouple it by building the prolongation operator P whose columns
>>> are harmonic extension of the coarse nodes? Then the coarse operator looks
>>> like P^T A P just like multigrid (for which we have a matop) instead of
>>> looking like a Schur complement.
>>>
>> I already have it. Each process has its local part, splitted in the
>> matrices pcbddc->coarse_phi_B (local interface nodes) and  (optionally)
>> pcbddc->coarse_phi_D (local dirichlet nodes). You can see that I used them
>> to check the correctness of the coarse local part in the code (see line
>> 1702 of bddc.c). I build the local part of coarse matrix , but I don't use
>> the expensive PtAP operation. Instead, I evaluate it by exploiting
>> properties of the saddle point problem they come from.
>>
>>
>>
>>
>>>  On May 10, 2012 2:42 PM, "Stefano Zampini" <stefano.zampini at gmail.com>
>>> wrote:
>>>
>>>>
>>>> This is to do recursive BDDC or what?
>>>>>
>>>>>
>>>> Yes. When creating the BDDC coarse matrix, now the code has three 3
>>>> options
>>>>
>>>> A) coarse matrix is a MATIS -> multilevel BDDC
>>>> B) coarse matrix is SEQAIJ -> one level BDDC with only one proc (or
>>>> all) solving directly the coarse problem
>>>> C) coarse matrix is MPIAIJ -> one level  BDDC with a parallel direct
>>>> solve
>>>>
>>>> I think that PCREDUNDANT can do the job in both cases of options B if
>>>> the matrix would be parallel.
>>>>
>>>
>>
>>
>> --
>> Stefano
>>
>


-- 
Stefano
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20120512/c6d72b68/attachment.html>


More information about the petsc-dev mailing list