petsc-3.4.2 2013-07-02

# PCFieldSplitSchurPrecondition

Indicates if the Schur complement is preconditioned by a preconditioner constructed by the A11 matrix. Otherwise no preconditioner is used.

### Synopsis

    #include "petscpc.h"
    PetscErrorCode  PCFieldSplitSchurPrecondition(PC pc,PCFieldSplitSchurPreType ptype,Mat pre)

Collective on PC

### Input Parameters

| pc | - the preconditioner context
| ptype | - which matrix to use for preconditioning the Schur complement, PC_FIELDSPLIT_SCHUR_PRE_A11 (diag) is default
| userpre | - matrix to use for preconditioning, or NULL

### Options Database

-pc_fieldsplit_schur_precondition <self,user,a11> default is a11 - Notes:

       If ptype is

           user then the preconditioner for the Schur complement is generated by the provided matrix (pre argument

                to this function).

           a11 then the preconditioner for the Schur complement is generated by the block diagonal part of the original

                matrix associated with the Schur complement (i.e. A11)

           self the preconditioner for the Schur complement is generated from the Schur complement matrix itself:

                The only preconditioner that currently works directly with the Schur complement matrix object is the PCLSC

                preconditioner

When solving a saddle point problem, where the A11 block is identically zero, using a11 as the ptype only makes sense with the additional option -fieldsplit_1_pc_type none. Usually for saddle point problems one would use a ptype of self and -fieldsplit_1_pc_type lsc which uses the least squares commutator compute a preconditioner for the Schur complement.

Developer Notes: This is a terrible name, gives no good indication of what the function does and should also have Set in the name since it sets a proceedure to use.

### See Also

PCFieldSplitGetSubKSP(), PCFIELDSPLIT, PCFieldSplitSetFields(), PCFieldSplitSchurPreType, PCLSC

Level:intermediate
Location:src/ksp/pc/impls/fieldsplit/fieldsplit.c
Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages

### Examples

src/snes/examples/tutorials/ex70.c.html