typedef enum {MAT_OPTION_MIN = -3,
              MAT_UNUSED_NONZERO_LOCATION_ERR = -2,
              MAT_ROW_ORIENTED = -1,
              MAT_SYMMETRIC = 1,
              MAT_STRUCTURALLY_SYMMETRIC = 2,
              MAT_FORCE_DIAGONAL_ENTRIES = 3,
              MAT_IGNORE_OFF_PROC_ENTRIES = 4,
              MAT_USE_HASH_TABLE = 5,
              MAT_KEEP_NONZERO_PATTERN = 6,
              MAT_IGNORE_ZERO_ENTRIES = 7,
              MAT_USE_INODES = 8,
              MAT_HERMITIAN = 9,
              MAT_SYMMETRY_ETERNAL = 10,
              MAT_NEW_NONZERO_LOCATION_ERR = 11,
              MAT_IGNORE_LOWER_TRIANGULAR = 12,
              MAT_ERROR_LOWER_TRIANGULAR = 13,
              MAT_GETROW_UPPERTRIANGULAR = 14,
              MAT_SPD = 15,
              MAT_NO_OFF_PROC_ZERO_ROWS = 16,
              MAT_NO_OFF_PROC_ENTRIES = 17,
              MAT_NEW_NONZERO_LOCATIONS = 18,
              MAT_NEW_NONZERO_ALLOCATION_ERR = 19,
              MAT_SUBSET_OFF_PROC_ENTRIES = 20,
              MAT_SUBMAT_SINGLEIS = 21,
              MAT_STRUCTURE_ONLY = 22,
              MAT_SORTED_FULL = 23,
              MAT_FORM_EXPLICIT_TRANSPOSE = 24,
              MAT_OPTION_MAX = 25} MatOption;
Any additions/changes here MUST also be made in include/petsc/finclude/petscmat.h Any additions/changes here must also be made in src/mat/interface/dlregismat.c in MatOptions[]