Checks if a matrix knows if it is symmetric or not and its symmetric state


#include "petscmat.h" 
PetscErrorCode MatIsSymmetricKnown(Mat A, PetscBool *set, PetscBool *flg)

Not Collective

Input Parameter#

  • A - the matrix to check

Output Parameters#

  • set - PETSC_TRUE if the matrix knows its symmetry state (this tells you if the next flag is valid)

  • flg - the result (only valid if set is PETSC_TRUE)


Does not check the matrix values directly, so this may return unknown (set = PETSC_FALSE). Use MatIsSymmetric() if you want it explicitly checked

One can declare that a matrix is symmetric with MatSetOption(mat,MAT_SYMMETRIC,PETSC_TRUE) and if it is known to remain symmetric after changes to the matrices values one can call MatSetOption(mat,MAT_SYMMETRY_ETERNAL,PETSC_TRUE)

See Also#

MAT_SYMMETRY_ETERNAL, MatTranspose(), MatIsTranspose(), MatIsHermitian(), MatIsStructurallySymmetric(), MatSetOption(), MatIsSymmetric(), MatIsHermitianKnown()





Edit on GitLab

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