MatProductSymbolic#

Perform the symbolic portion of a matrix-matrix product operation, this creates a data structure for use with the numerical product to be done with MatProductNumeric()

Synopsis#

#include "petscmat.h" 
PetscErrorCode MatProductSymbolic(Mat mat)

Collective

Input/Output Parameter#

  • mat - the matrix whose values are to be computed via a matrix-matrix product operation

Notes#

MatProductSetFromOptions() must have been called on mat before calling this function. For MATPRODUCT_AB and MATPRODUCT_AtB with AIJ inputs, setting MAT_STRUCTURE_ONLY on mat before MatProductSetFromOptions() requests an assembled graph without numerical values. These products use the native CPU symbolic algorithms (sorted for sequential AB, outerproduct for sequential AtB, and scalable for MPI products), overriding the selected algorithm, and return MATSEQAIJ or MATMPIAIJ, including for device AIJ inputs. Call MatProductClear() when the product context is no longer needed. MatProductNumeric() cannot be used on a structure-only result.

See Also#

Matrices, MatProduct, Mat, MatProductCreate(), MatProductCreateWithMat(), MatProductSetFromOptions(), MatProductNumeric(), MatProductSetType(), MatProductSetAlgorithm()

Level#

intermediate

Location#

src/mat/interface/matproduct.c

Examples#

src/mat/tests/ex101.c
src/mat/tests/ex109.c
src/mat/tests/ex111.c
src/mat/tests/ex195.c
src/mat/tests/ex237.c
src/mat/tests/ex258.c
src/mat/tests/ex309.c
src/mat/tests/ex62.c
src/mat/tests/ex69.c
src/mat/tests/ex6k.kokkos.cxx

Implementations#

MatProductSymbolic_MPIAIJKokkos() in src/mat/impls/aij/mpi/kokkos/mpiaijkok.kokkos.cxx
MatProductSymbolic_MPIAIJBACKEND() in src/mat/impls/aij/mpi/mpiaij.c
MatProductSymbolic_H2OPUS() in src/mat/impls/h2opus/cuda/math2opus.cu
MatProductSymbolic_Htool() in src/mat/impls/htool/impl/ihtool.cxx
MatProductSymbolic_HT() in src/mat/impls/transpose/htransm.c
MatProductSymbolic_Transpose() in src/mat/impls/transpose/transm.c


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