1 /* 2 Private data structure for ILU/ICC/LU/Cholesky preconditioners. 3 */ 4 #if !defined(__FACTOR_H) 5 #define __FACTOR_H 6 7 #include <petsc-private/pcimpl.h> /*I "petscpc.h" I*/ 8 9 typedef struct { 10 Mat fact; /* factored matrix */ 11 MatFactorInfo info; 12 MatOrderingType ordering; /* matrix reordering */ 13 MatSolverPackage solvertype; 14 MatFactorType factortype; 15 } PC_Factor; 16 17 extern PetscErrorCode PCFactorGetMatrix_Factor(PC,Mat*); 18 19 EXTERN_C_BEGIN 20 extern PetscErrorCode PCFactorSetZeroPivot_Factor(PC,PetscReal); 21 extern PetscErrorCode PCFactorSetShiftType_Factor(PC,MatFactorShiftType); 22 extern PetscErrorCode PCFactorSetShiftAmount_Factor(PC,PetscReal); 23 extern PetscErrorCode PCFactorSetDropTolerance_Factor(PC,PetscReal,PetscReal,PetscInt); 24 extern PetscErrorCode PCFactorSetFill_Factor(PC,PetscReal); 25 extern PetscErrorCode PCFactorSetMatOrderingType_Factor(PC,MatOrderingType); 26 extern PetscErrorCode PCFactorSetLevels_Factor(PC,PetscInt); 27 extern PetscErrorCode PCFactorSetAllowDiagonalFill_Factor(PC); 28 extern PetscErrorCode PCFactorSetPivotInBlocks_Factor(PC,PetscBool); 29 extern PetscErrorCode PCFactorSetMatSolverPackage_Factor(PC,const MatSolverPackage); 30 extern PetscErrorCode PCFactorSetUpMatSolverPackage_Factor(PC); 31 extern PetscErrorCode PCFactorGetMatSolverPackage_Factor(PC,const MatSolverPackage*); 32 extern PetscErrorCode PCFactorSetColumnPivot_Factor(PC,PetscReal); 33 extern PetscErrorCode PCSetFromOptions_Factor(PC); 34 extern PetscErrorCode PCView_Factor(PC,PetscViewer); 35 EXTERN_C_END 36 37 #endif 38