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


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; /* for 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 */
} MatFactorInfo;

In Fortran these are simply double precision arrays of size MAT_FACTORINFO_SIZE, that is use

MatFactorInfo  info(MAT_FACTORINFO_SIZE)


These are not usually directly used by users, instead use PC type of PCLU, PCILU, PCCHOLESKY or PCICC.

You can use MatFactorInfoInitialize() to set default values.

See Also#

MatLUFactorSymbolic(), MatILUFactorSymbolic(), MatCholeskyFactorSymbolic(), MatICCFactorSymbolic(), MatICCFactor(), MatFactorInfoInitialize()





Edit on GitLab

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