:orphan:
# MatStructure
Indicates if two matrices have the same nonzero structure
## Synopsis
```
typedef enum {
DIFFERENT_NONZERO_PATTERN,
SUBSET_NONZERO_PATTERN,
SAME_NONZERO_PATTERN,
UNKNOWN_NONZERO_PATTERN
} MatStructure;
```
## Values
- ***`SAME_NONZERO_PATTERN` -*** the two matrices have identical nonzero patterns
- ***`DIFFERENT_NONZERO_PATTERN` -*** the two matrices may have different nonzero patterns
- ***`SUBSET_NONZERO_PATTERN` -*** the nonzero pattern of the second matrix is a subset of the nonzero pattern of the first matrix
- ***`UNKNOWN_NONZERO_PATTERN` -*** there is no known relationship between the nonzero patterns. In this case the implementations
may try to detect a relationship to optimize the operation
## See Also
[](ch_matrices), `Mat`, `MatCopy()`, `MatAXPY()`, `MatAYPX()`
## Level
beginner
## Location
include/petscmat.h
## Examples
src/ksp/ksp/tutorials/ex21.c
src/ksp/ksp/tutorials/ex29.c
src/ksp/ksp/tutorials/ex34.c
src/ksp/ksp/tutorials/ex76.c
src/ksp/ksp/tutorials/ex77.c
src/ksp/ksp/tutorials/ex77f.F90
src/ksp/ksp/tutorials/ex79.c
src/ksp/ksp/tutorials/ex9.c
src/mat/tutorials/ex9.c
src/tao/pde_constrained/tutorials/elliptic.c
src/tao/pde_constrained/tutorials/hyperbolic.c
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/include/petscmat.h)
[Index of all Mat routines](index.md)
[Table of Contents for all manual pages](/manualpages/index.md)
[Index of all manual pages](/manualpages/singleindex.md)