Skip to main content
`Ctrl`+`K`

# MatFactorInfo

Data passed into the matrix factorization routines, and information about the resulting factorization

## Synopsis

    typedef struct {
      PetscReal diagonal_fill; /* force diagonal to fill in if initially not filled */
      PetscReal usedt;
      PetscReal dt;            /* drop tolerance */
      PetscReal dtcol;         /* tolerance for pivoting */
      PetscReal dtcount;       /* maximum nonzeros to be allowed per row */
      PetscReal fill;          /* expected fill, nonzeros in factored matrix/nonzeros in original matrix */
      PetscReal levels;        /* ICC/ILU(levels) */
      PetscReal pivotinblocks; /* BAIJ and SBAIJ matrices pivot in factorization on blocks, default 1.0 factorization may be faster if do not pivot */
      PetscReal zeropivot;     /* pivot is called zero if less than this */
      PetscReal shifttype;     /* type of shift added to matrix factor to prevent zero pivots */
      PetscReal shiftamount;   /* how large the shift is */
      PetscBool factoronhost;  /* do factorization on host instead of device (for device matrix types) */
      PetscBool solveonhost;   /* do mat solve on host with the factor (for device matrix types) */
    } MatFactorInfo;

## Note

You can use `MatFactorInfoInitialize()` to set default values.

## Fortran Note

`MatFactorInfo` is a derived type, use e.g. `matfactorinfo%dt` to access its components.

## See Also

Matrices, `Mat`, `MatInfo`, `MatGetFactor()`, `MatLUFactorSymbolic()`, `MatILUFactorSymbolic()`, `MatCholeskyFactorSymbolic()`, `MatICCFactorSymbolic()`, `MatICCFactor()`, `MatFactorInfoInitialize()`

## Level

developer

## Location

include/petscmat.h

## Examples

src/ksp/ksp/tutorials/ex52.c

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