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 vision.ee.ethz.ch> wrote: > Dear nice people, > > Did you ever try to solve a Schur complement system using PETSc? > > -- Lisandro Dalc?n --------------- 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 Tel/Fax: +54-(0)342-451.1594
