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#
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