petsc-3.3-p7 2013-05-11


Performs construction, preallocation, and computes the ij structure of the matrix-matrix product C=A*B. Call this routine before calling MatMatMultNumeric().


#include "petscmat.h" 
PetscErrorCode  MatMatMultSymbolic(Mat A,Mat B,PetscReal fill,Mat *C) 
Neighbor-wise Collective on Mat

Input Parameters

A - the left matrix
B - the right matrix
fill - expected fill as ratio of nnz(C)/(nnz(A) + nnz(B)), use PETSC_DEFAULT if you do not have a good estimate, if C is a dense matrix this is irrelevent

Output Parameters

C -the product matrix


Unless scall is MAT_REUSE_MATRIX C will be created.

To determine the correct fill value, run with -info and search for the string "Fill ratio" to see the value actually needed.

This routine is currently implemented for - pairs of AIJ matrices and classes which inherit from AIJ, C will be of type AIJ - pairs of AIJ (A) and Dense (B) matrix, C will be of type Dense. - pairs of Dense (A) and AIJ (B) matrix, C will be of type Dense.

Developers Note: There are ways to estimate the number of nonzeros in the resulting product, see for example, We should incorporate them into PETSc.

See Also

MatMatMult(), MatMatMultNumeric()

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