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>