:orphan:
# MatFactorError
indicates what type of error was generated in a matrix factorization 
## Synopsis
```
typedef enum {
  MAT_FACTOR_NOERROR,
  MAT_FACTOR_STRUCT_ZEROPIVOT,
  MAT_FACTOR_NUMERIC_ZEROPIVOT,
  MAT_FACTOR_OUTMEMORY,
  MAT_FACTOR_OTHER
} MatFactorError;
```

## Values

- ***`MAT_FACTOR_NOERROR` -*** there was no error during the factorization
- ***`MAT_FACTOR_STRUCT_ZEROPIVOT` -*** there was a missing entry in a diagonal location of the matrix
- ***`MAT_FACTOR_NUMERIC_ZEROPIVOT` -*** there was a (near) zero pivot during the factorization
- ***`MAT_FACTOR_OUTMEMORY` -*** the factorization has run out of memory
- ***`MAT_FACTOR_OTHER` -*** some other error has occurred.





## Note
When a factorization is done in a preconditioner `PC` the error may be propagated up to a `PCFailedReason` or a `KSPConvergedReason`


## See Also
 [](ch_matrices), `Mat`, `MatGetFactor()`, `MatFactorGetError()`, `MatFactorGetErrorZeroPivot()`, `MatFactorClearError()`,
`PCFailedReason`, `PCGetFailedReason()`, `KSPConvergedReason`

## Level
intermediate

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/include/petscmat.h.html#MatFactorError">include/petscmat.h</A>


---
[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)  
