petsc-3.7.1 2016-05-15
Report Typos and Errors

# MatCreateSchurComplement

Creates a new matrix object that behaves like the Schur complement of a matrix

### Synopsis

    #include "petscksp.h"
    PetscErrorCode  MatCreateSchurComplement(Mat A00,Mat Ap00,Mat A01,Mat A10,Mat A11,Mat *S)

Collective on Mat Many br

### Input Parameters

| A00,A01,A10,A11 | - the four parts of the original matrix A = [A00 A01; A10 A11] (A11 is optional) Many br
| Ap00 | - preconditioning matrix for use in ksp(A00,Ap00) to approximate the action of A^{-1} Many br

### Output Parameter

S -the matrix that the Schur complement S = A11 - A10 ksp(A00,Ap00) A01 Many br

Many br

Notes: The Schur complement is NOT actually formed! Rather, this Many brobject performs the matrix-vector product by using formula S = A11 - A10 A^{-1} A01 Many brfor Schur complement S and a KSP solver to approximate the action of A^{-1}. Many br

All four matrices must have the same MPI communicator. Many br

A00 and A11 must be square matrices. Many br

### See Also

MatCreateNormal(), MatMult(), MatCreate(), MatSchurComplementGetKSP(), MatSchurComplementUpdateSubMatrices(), MatCreateTranspose(), MatGetSchurComplement()

Level:intermediate
Location:src/ksp/ksp/utils/schurm.c
Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages