MatCreateSchurComplementPmat#
create a preconditioning matrix for the Schur complement by explicitly assembling the sparse matrix \(Sp = A11 - A10 inv(DIAGFORM(A00)) A01\)
Synopsis#
#include "petscksp.h" 
PetscErrorCode MatCreateSchurComplementPmat(Mat A00, Mat A01, Mat A10, Mat A11, MatSchurComplementAinvType ainvtype, MatReuse preuse, Mat *Sp)
Collective
Input Parameters#
- A00 - the upper-left part of the original matrix \(A = [A00 A01; A10 A11]\) 
- A01 - (optional) the upper-right part of the original matrix \(A = [A00 A01; A10 A11]\) 
- A10 - (optional) the lower-left part of the original matrix \(A = [A00 A01; A10 A11]\) 
- A11 - (optional) the lower-right part of the original matrix \(A = [A00 A01; A10 A11]\) 
- ainvtype - type of approximation for DIAGFORM(A00) used when forming \(Sp = A11 - A10 inv(DIAGFORM(A00)) A01\). See - MatSchurComplementAinvType.
- preuse - - MAT_INITIAL_MATRIXfor a new- Sp, or- MAT_REUSE_MATRIXto reuse an existing- Sp, or- MAT_IGNORE_MATRIXto put nothing in- Sp
Output Parameter#
- Sp - approximate Schur complement suitable for constructing a preconditioner for the true Schur complement \(S = A11 - A10 inv(A00) A01\) 
See Also#
KSP: Linear System Solvers, MatCreateSchurComplement(), MatGetSchurComplement(), MatSchurComplementGetPmat(), MatSchurComplementAinvType
Level#
advanced
Location#
src/ksp/ksp/utils/schurm/schurm.c
Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages