petsc-3.11.4 2019-09-28
Report Typos and Errors


set the type of approximation used for the inverse of the (0,0) block used in forming Sp in MatSchurComplementGetPmat()


#include "petscksp.h" 
PetscErrorCode  MatSchurComplementSetAinvType(Mat S,MatSchurComplementAinvType ainvtype)
Not collective.

Input Parameters

S - matrix obtained with MatCreateSchurComplement() (or equivalent) and implementing the action of A11 - A10 ksp(A00,Ap00) A01
ainvtype - type of approximation used to form A00inv from A00 when assembling Sp = A11 - A10 A00inv A01: MAT_SCHUR_COMPLEMENT_AINV_DIAG, MAT_SCHUR_COMPLEMENT_AINV_LUMP, or MAT_SCHUR_COMPLEMENT_AINV_BLOCK_DIAG

Options database

-mat_schur_complement_ainv_type diag | lump | blockdiag


Since the real Schur complement is usually dense, providing a good approximation to newpmat usually requires application-specific information. The default for assembled matrices is to use the inverse of the diagonal of the (0,0) block A00 in place of A00^{-1}. This rarely produces a scalable algorithm. Optionally, A00 can be lumped before forming inv(diag(A00)).

See Also

MatSchurComplementAinvType, MatCreateSchurComplement(), MatGetSchurComplement(), MatSchurComplementGetPmat(), MatSchurComplementGetAinvType()




Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages