petsc-3.9.4 2018-09-11
MatPtAP
Creates the matrix product C = P^T * A * P
Synopsis
#include "petscmat.h"
PetscErrorCode MatPtAP(Mat A,Mat P,MatReuse scall,PetscReal fill,Mat *C)
Neighbor-wise Collective on Mat
Input Parameters
| A | - the matrix
|
| P | - the projection matrix
|
| scall | - either MAT_INITIAL_MATRIX or MAT_REUSE_MATRIX
|
| fill | - expected fill as ratio of nnz(C)/(nnz(A) + nnz(P)), use PETSC_DEFAULT if you do not have a good estimate
if the result is a dense matrix this is irrelevent
|
Output Parameters
C -the product matrix
Notes
C will be created and must be destroyed by the user with MatDestroy().
This routine is currently only implemented for pairs of sequential dense matrices, AIJ matrices and classes
which inherit from AIJ.
See Also
MatPtAPSymbolic(), MatPtAPNumeric(), MatMatMult(), MatRARt()
Level
intermediate
Location
src/mat/interface/matrix.c
Examples
src/tao/pde_constrained/examples/tutorials/elliptic.c.html
Implementations
MatPtAP_MPIAIJ_MPIAIJ in src/mat/impls/aij/mpi/mpiptap.c
MatPtAP_SeqAIJMKL_SeqAIJMKL_SpMV2 in src/mat/impls/aij/seq/aijmkl/aijmkl.c
MatPtAP_SeqAIJ_SeqAIJ in src/mat/impls/aij/seq/matptap.c
MatPtAP_SeqDense_SeqDense in src/mat/impls/dense/seq/dense.c
MatPtAP_AIJ_HYPRE in src/mat/impls/hypre/mhypre.c
MatPtAP_HYPRE_HYPRE in src/mat/impls/hypre/mhypre.c
MatPtAP_SeqAIJ_SeqMAIJ in src/mat/impls/maij/maij.c
MatPtAP_MPIAIJ_MPIMAIJ in src/mat/impls/maij/maij.c
Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages