MatPtAP#
Creates the matrix product \(C = P^T * A * P\)
Synopsis#
Neighbor-wise Collective
Input Parameters#
A - the matrix
P - the projection matrix
scall - either
MAT_INITIAL_MATRIXorMAT_REUSE_MATRIXfill - expected fill as ratio of nnz(C)/(nnz(A) + nnz(P)), use
PETSC_DETERMINEorPETSC_CURRENTif you do not have a good estimate if the result is a dense matrix this is irrelevant
Output Parameter#
C - the product matrix
Notes#
C will be created and must be destroyed by the user with MatDestroy().
This is a convenience routine that wraps the use of the MatProductCreate() with a MatProductType of MATPRODUCT_PtAP
functionality into a single function call. For more involved matrix-matrix operations see MatProductCreate().
The deprecated PETSC_DEFAULT in fill also means use the current value
Developer Note#
For matrix types without special implementation the function fallbacks to MatMatMult() followed by MatTransposeMatMult().
See Also#
Matrices, Mat, MatProductCreate(), MatMatMult(), MatRARt()
Level#
intermediate
Location#
Examples#
src/ksp/ksp/tutorials/ex76.c
src/tao/pde_constrained/tutorials/elliptic.c
Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages