Schur complement system

Kathrin Burckhardt tribur at
Sun Mar 9 16:39:12 CDT 2008

Dear Lisandro,

uff, sounds in fact quite complicated. In particular, I don't 
understand why you split the "local process matrix" (the local Schur 
complement, right?) in four (sub?)submatrices? Is it because of the 
structure of you domain?

On Fri, 7 Mar 2008, Lisandro Dalcin wrote:

> Well, I did. I have a preliminar implementation of this inside
> petsc4py (PETSc for Python). However, it is fully implemented in C as
> a standard preconditioner intended to be used with KSPPREONLY. The
> preconditioner has  a sub-KSP iterating only on global interface
> nodes. It should be almost trivial to incorporate it inside other
> codes.
> A warning: all this needs a MATIS matrix to work, that is each
> processor have is local portion of the global matrix in an unassembled
> fashion. In order to define the Schur complement system, the local
> process matrix is splitted in four submatrices. At each processor, the
> 'subdomain' can be further partitioned, this is implemented with a
> simple minded graph partitioning implemented by reusing the some core
> routines used inside PETSc for sparse matrix reordering. In order to
> precondition the Schur complement system, a subsidiary problem can
> defined by taking some layers of nodes around interface nodes and it
> is globally iterated with typically a few loops or sub-sub KSP.
> In short, the implementation is a really involved, and comparable in
> dificulty to the Newmann-Newman preconditioner (which is also
> implemented to work with MATIS). At the user level, the only parameter
> to tweack is the 'sub-subdomain' size and of course tolerances of the
> inner KSP solver inside the 'SCHUR' preconditioner.
> Why I never added this to PETSc? Time, lack of serious testing, etc.
> but mainly because I'm not sure of it is really a good choice compared
> to PCASM. In fact, some day I would implement my trics for
> sub-subdamain partitioning (or perhaps use metis for this) inside ASM.
> Then the sub-subdomain problems would have a reasonable size for using
> LU, and finally I would compare PCASM  with my PCSCHUR.
> Currently, we are using this for solving incompressible NS equations
> with monolithic stabilized FEM formulation, and other problems with
> badly conditioned global systems. We have found no better way to solve
> our linear systems for our application, probably because we are not
> smart enough.
> Hope you understood me...
> On 3/7/08, Kathrin Burckhardt <tribur at> wrote:
>> Dear nice people,
>>  Did you ever try to solve a Schur complement system using PETSc?

More information about the petsc-users mailing list