Schur complement system
dalcinl at gmail.com
Fri Mar 7 09:34:35 CST 2008
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
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
Hope you understood me...
On 3/7/08, Kathrin Burckhardt <tribur at vision.ee.ethz.ch> wrote:
> Dear nice people,
> Did you ever try to solve a Schur complement system using PETSc?
Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)
Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)
Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
PTLC - Güemes 3450, (3000) Santa Fe, Argentina
More information about the petsc-users